詳談基于JSON的高級(jí)AJAX開發(fā)技術(shù)

字號(hào):

本文將解釋如何使用AJAX和JSON分析器在客戶端和服務(wù)器之間創(chuàng)建復(fù)雜的JSON數(shù)據(jù)傳輸層。
    一、 引言
    毫無疑問,AJAX已經(jīng)成為當(dāng)今Web開發(fā)中一種強(qiáng)有力的用戶交互技術(shù),但是它的許多可能性應(yīng)用仍然鮮為人知。在本文中,我們將來共同探討如何使用JavaScript對(duì)象標(biāo)志(JSON)和JSON分析器在服務(wù)器和客戶端AJAX引擎之間創(chuàng)建復(fù)雜而強(qiáng)有力的JSON數(shù)據(jù)傳輸層。我們將詳細(xì)討論如何創(chuàng)建一組對(duì)象(在其它語言中經(jīng)常被當(dāng)作一個(gè)包),如何把這些對(duì)象串行化為JSON以發(fā)送到服務(wù)器端,以及如何把服務(wù)器端JSON反串行化為客戶端JavaScript對(duì)象。
    提示:你可以在Douglas Crockford的網(wǎng)站上找到本文中使用的JSON分析器。
    在繼續(xù)閱讀前,本文假定你已經(jīng)掌握了JavaScript技術(shù)并且了解如何創(chuàng)建一個(gè)基本的AJAX引擎,并經(jīng)由AJAX技術(shù)向服務(wù)器端發(fā)出請(qǐng)求和從服務(wù)器端接收響應(yīng)。為了更好地理解本文中示例,你需要下載本文相應(yīng)的源碼文件。
    二、 開始
    為了進(jìn)一步抽象我們的AJAX請(qǐng)求并有助于我們以后在不同的應(yīng)用程序間共享AJAX引擎代碼,本文使用了一個(gè)我自己創(chuàng)建的AJAX引擎。為了使用這個(gè)引擎,我們簡(jiǎn)單地導(dǎo)入三個(gè)JavaScript文件并且向一個(gè)名為AjaxUpdater的對(duì)象發(fā)出請(qǐng)求。然后,由該引擎來負(fù)責(zé)處理其它任務(wù),包括把響應(yīng)代理到在該請(qǐng)求中指定的回調(diào)方法中。下面的示例展示了我們?nèi)绾问褂眠@個(gè)引擎發(fā)出請(qǐng)求以及導(dǎo)入相關(guān)的文件:
    以下是引用片段:
    <script type="text/javascript"src="javascript/model/Ajax.js"></script>
    <script type="text/javascript" src="javascript/model/HTTP.js"></script>
    <script type="text/javascript" src="javascript/model/AjaxUpdater.js"></script>
    <script type="text/javascript">
    document.load = AjaxUpdater.Update(’GET’, URL, callback);
    </script>
    首先,讓我們來討論JavaScript對(duì)象。