資源描述:
《ajax開發(fā)簡略》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、在使用瀏覽器瀏覽網頁的時候,當頁面刷新很慢的時候,你的瀏覽器在干什么?你的屏幕內容是什么?是的,你的瀏覽器在等待刷新,而你的屏幕內容是一片空白,而你在屏幕前苦苦的等待瀏覽器的響應。開發(fā)人員為了克服這種尷尬的局面,不得不在每一個可能需要長時間等待響應的頁面上增加一個DIV,告訴用戶“系統(tǒng)正在處理您的請求,請稍候……”?! ‖F(xiàn)在,有一種越來越流行越熱的“老”技術,可以徹底改變這種窘迫的局面。那就是AJAX。如今,隨著Gmail、Google-maps的應用和各種瀏覽器的支持,AJAX正逐漸吸引全世界的眼球。一、AJAX定義 AJAX(AsynchronousJavaSc
2、riptandXML)其實是多種技術的綜合,包括Javascript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest。其中: 使用XHTML和CSS標準化呈現(xiàn),使用DOM實現(xiàn)動態(tài)顯示和交互,使用XML和XSTL進行數據交換與處理,使用XMLHttpRequest對象進行異步數據讀取,使用Javascript綁定和處理所有數據?! ≡贏JAX提出之前,業(yè)界對于上述技術都只是單獨的使用,沒有綜合使用,也是由于之前的技術需求所決定的。隨著應用的廣泛,AJAX也成為香餑餑了。二、現(xiàn)狀與需要解決的問題 傳統(tǒng)的Web應用采用同步交互過程,這種情況下
3、,用戶首先向HTTP服務器觸發(fā)一個行為或請求的呼求。反過來,服務器執(zhí)行某些任務,再向發(fā)出請求的用戶返回一個HTML頁面。這是一種不連貫的用戶體驗,服務器在處理請求的時候,用戶多數時間處于等待的狀態(tài),屏幕內容也是一片空白。如下圖:32 自從采用超文本作為Web傳輸和呈現(xiàn)之后,我們都是采用這么一套傳輸方式。當負載比較小的時候,這并不會體現(xiàn)出有什么不妥。可是當負載比較大,響應時間要很長,1分鐘、2分鐘……數分鐘的時候,這種等待就不可忍受了。嚴重的,超過響應時間,服務器干脆告訴你頁面不可用。另外,某些時候,我只是想改變頁面一小部分的數據,那為什么我必須重新加載整個頁面呢?!
4、當軟件設計越來越講究人性化的時候,這么糟糕的用戶體驗簡直與這種原則背道而馳。為什么老是要讓用戶等待服務器取數據呢?至少,我們應該減少用戶等待的時間。現(xiàn)在,除了程序設計、編碼優(yōu)化和服務器調優(yōu)之外,還可以采用AJAX。32三、為什么使用AJAX 與傳統(tǒng)的Web應用不同,AJAX采用異步交互過程。AJAX在用戶與服務器之間引入一個中間媒介,從而消除了網絡交互過程中的處理—等待—處理—等待缺點。用戶的瀏覽器在執(zhí)行任務時即裝載了AJAX引擎。AJAX引擎用JavaScript語言編寫,通常藏在一個隱藏的框架中。它負責編譯用戶界面及與服務器之間的交互。AJAX引擎允許用戶與應用
5、軟件之間的交互過程異步進行,獨立于用戶與網絡服務器間的交流。現(xiàn)在,可以用Javascript調用AJAX引擎來代替產生一個HTTP的用戶動作,內存中的數據編輯、頁面導航、數據校驗這些不需要重新載入整個頁面的需求可以交給AJAX來執(zhí)行。32 使用AJAX,可以為ISP、開發(fā)人員、終端用戶帶來可見的便捷:·減輕服務器的負擔。AJAX的原則是“按需取數據”,可以最大程度的減少冗余請求,和響應對服務器造成的負擔?!o刷新更新頁面,減少用戶心理和實際的等待時間。特別的,當要讀取大量的數據的時候,不用像Reload那樣出現(xiàn)白屏的情況,AJAX使用XMLHTTP對象發(fā)送請求并得到
6、服務器響應,在不重新載入整個頁面的情況下用Javascript操作DOM最終更新頁面。所以在讀取數據的過程中,用戶所面對的不是白屏,是原來的頁面內容(也可以加一個Loading的提示框讓用戶知道處于讀取數據過程),只有當數據接收完畢之后才更新相應部分的內容。這種更新是瞬間的,用戶幾乎感覺不到?!砀玫挠脩趔w驗?!た梢园岩郧耙恍┓掌髫摀墓ぷ鬓D嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務器和帶寬的負擔,節(jié)約空間和寬帶租用成本。·可以調用外部數據。·基于標準化的并被廣泛支持的技術,不需要下載插件或者小程序?!みM一步促進頁面呈現(xiàn)和數據的分離。四、誰在使用AJAX
7、 在應用AJAX開發(fā)上面,Google當仁不讓是表率。Orkut、Gmail、GoogleGroups、GoogleMaps、GoogleSuggest都應用了這項技術。Amazon的A9.com搜索引擎也采用了類似的技術?! ∥④浺苍诜e極開發(fā)更為完善的AJAX應用:它即將推出代號為Atlas的AJAX工具。Atlas的功能超越了AJAX本身,包括整合VisualStudio的調試功能。另外,新的ASP.NET控件將使客戶端控件與服務器端代碼的捆綁更為簡便。Atlas客戶腳本框架(AtlasClentScriptFramework)也使與網頁及相關項