[摘要] 本文論述了AJAX技術在商業(yè)網站中的體系結構,介紹了如何在Microsoft.NET Framework2.0環(huán)境下實現AJAX技術,并說明了使用AJAX技術在商業(yè)網站中的優(yōu)點與缺點。
[關鍵詞] AJAXNET Framework2.0JavaScript系統
AJAX是Asynchronous JavaScript and XML 的縮寫。它并不是一門新的語言或技術,它實際上是幾項技術按一定的方式組合在一起同共的協作中發(fā)揮各自的作用,它包括:使用XHTML和CSS標準化呈現;使用DOM實現動態(tài)顯示和交互;使用XML和XSLT進行數據交換與處理;使用XMLHttpRequest進行異步數據讀取;最后用JavaScript綁定和處理所有數據。使用AJAX技術可以有效的利用網絡資源,大大減輕服務器和帶寬的負擔提高商業(yè)網站的發(fā)布效率。用戶可以充分的利用網絡資源,進行高效、準確的信息檢索。
一、AJAX技術在商業(yè)網站中的體系結構
AJAX是一種 Web 應用程序開發(fā)的手段,它采用客戶端腳本與 Web 服務器交換數據。所以,不必采用會中斷交互的完整頁面刷新,就可以動態(tài)地更新 Web 頁面。使用Ajax,可以創(chuàng)建更加豐富、更加動態(tài)的 Web應用程序用戶界面,其即時性與可用性甚至能夠接近本機桌面應用程序。
與傳統的Web應用不同,AJAX采用異步交互過程。AJAX在用戶與服務器之間引入一個中間媒介,從而消除了網絡交互過程中的處理—等待—處理—等待缺點。用戶的瀏覽器在執(zhí)行任務時即裝載了AJAX引擎。AJAX引擎用JavaScript語言編寫,通常藏在一個隱藏的框架中。它負責編譯用戶界面及與服務器之間的交互。AJAX引擎允許用戶與應用軟件之間的交互過程異步進行,獨立于用戶與網絡服務器間的交流?,F在,可以用JavaScript調用AJAX引擎來代替產生一個HTTP的用戶動作,內存中的數據編輯、頁面導航、數據校驗這些不需要重新載入整個頁面的需求可以交給AJAX來執(zhí)行(見圖)。
AJAX技術原理圖
采用Microsoft Asp.Net2.0技術與AJAX技術結構的優(yōu)點在于分布式應用,用戶可以在不同的場合和地點對網站的最新信息進行查詢檢索。AJAX技術可以最大程度的減少冗余請求,減小服務器的負擔。無刷新更新頁面,減少用戶心理和實際的等待時間??梢园逊掌髫摀墓ぷ鬓D嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務器和帶寬的負擔,進一步促進頁面呈現和數據的分離。
二、在Microsoft.NET Framework2.0下實現AJAX技術
一個基本的AJAX實現需要兩個主要部分:一個使用JavaScript代碼編寫的客戶端HTML頁,這些JavaScript用來向服務端發(fā)送請求和接收響應;一個可以接收請求和向客戶端發(fā)送響應信息的遠程頁面??蛻舳说腏avaScript代碼的任務是建立一個XmlHttp對象,然后向服務端發(fā)送請求信息,最后通過回調方式處理服務端返回的響應信息,這一切都是由JavaScript代碼實現的。
在Microsoft.NET Framework2.0下實現AJAX技術要做到以下幾點:
1.AJAX可以在不同的ASP.NET頁上,向不同的服務端頁發(fā)送請求。
2.遠程頁面URL可以包含動態(tài)可計算的參數,這樣做可以在ASP.NET的后端代碼中更方便地建立URL字符串。
3.遠程頁在更新HTML頁之前可以使用復雜的數據進行響應,這也可以由ASP.NET的后端代碼完成。
目前,在Microsoft.NET Framework2.0下如Ajax.net、Magic、Ajax等技術都可以滿足以上幾點,但是微軟公司也推出了自己的Ajax技術—Atlas?!癆tlas”技術與Microsoft.NET Framework2.0結合的更加完美。
微軟公司的“Atlas”技術是一項新的ASP.NET網頁開發(fā)新技術,在ASP.NET 2.0 服務器開發(fā)平臺下集成Client端的Script Libraries,Atlas對于網頁開發(fā)所構建的AJAX策略能夠讓你從Client端Script調用Server端的網頁應用程序,Atlas能夠處理Client端的應用程序重要部分而不必往返Server端更新Page頁面。使用“Atlas”技術優(yōu)點在于幫助程序開發(fā)人員建立“Atlas”應用程序降低開發(fā)AJAX程序的復雜性,在Server端的ASP.NET中集成Atlas client script特點,以提供一個廣泛的綜合性開發(fā)平臺。“Atlas”技術可以提高瀏覽器的兼容性,不必為了多種瀏覽器而另外撰寫額外程序與部署組件,現有的Web應用程序就可以跨瀏覽器而執(zhí)行。另外“Atlas”技術還可以與微軟公司最新的開發(fā)工具Visual Studio 2005完美的結合在一起提供一個開發(fā)、設計、查錯、完整說明、管理的綜合開發(fā)環(huán)境。
三、AJAX技術的性能分析
我們在200臺同等計算機環(huán)境下對擁有AJAX技術的網站和普通WEB技術的網站進行比較與分析。我們主要從兩個大方面進行比較與分析,第一就是網絡帶寬的利用情況,第二就是服務器CPU的占用率。
表1AJAX技術與傳統WEB技術占用帶寬大小比較
我們從上表可以看出在加載首頁時,AJAX模式程序讓首頁變得更大這是因為在WEB程序里擁有大量JavaScript代碼造成的,大約多出5K這是很正常的。不過在數據更新時頁面時的大小從平均20K左右下降到了平均5K左右大約下降了75%。從表1可以看出,采用AJAX技術與傳統WEB技術相比最后網絡帶寬可以減少到原來的32%左右,這樣可以大大提高網絡帶寬的利用率。
然后我們在來比較一下采用AJAX技術與傳統WEB技術對服務器CPU占用率的影響。
表2服務器CPU占用率
從表2數據可以看出在采用AJAX技術時計算機服務器CPU的占用率從傳統WEB技術的35%下降到了11%這樣就可以更好的利用服務器資源,可以大大提高計算機服務器的性能。
四、結論
從以上分析數據可以看出采用AJAX技術優(yōu)點在于可以有效的利用網絡資源,大大減輕服務器和帶寬的負擔提高系統的發(fā)布效率。但是AJAX技術也同樣存在缺點,比如AJAX大量使用了JavaScript和AJAX引擎,而這個取決于瀏覽器的支持。IE5.0及以上、Mozilla1.0、NetScape7及以上版本才支持。所以,使用AJAX的程序必須測試針對各個瀏覽器的兼容性。AJAX更新頁面內容的時候并沒有刷新整個頁面,因此,網頁的后退功能是失效的;有的用戶還經常搞不清楚現在的數據是舊的還是已經更新過的。這個就需要在明顯位置提醒用戶“數據已更新”。 對流媒體的支持沒有FLASH、Java Applet好。 一些手持設備(如手機、PDA等)現在還不能很好的支持AJAX技術。 在使用AJAX技術時一定要權衡一下優(yōu)點與缺點以免造成不必要的錯誤。