1 大大減少了服務器端和客戶端的數據流量,不像submit-responce時代需要參雜大量的Html腳本。
2 豐富了客戶端的相應,例如表單子段的提示輸入,數據驗證。多級列表的實現。樹樁菜單的動態加載等等
需要注意的事:AJax設計時候一定要考慮用戶界面事件觸發的無序性。1 對一些有寫操作的地方,要根據情況實行界面鎖定功能,即提交完成前,不可以進行其他操作。2 任何操作都要給用戶 Load... 這樣的提示
AJax的三種形式
1 最原始的XMLHTTPRepuest方式,
這種方式最靈活,你可以自由訪問任何通用網關接口,返回你自己定義的XML格式,然後通過XML腳本顯示出來。當然這是最原始的方法,不適合大規模應用程序的開發
2 Javascript封裝好的函數庫
Protype, RicoAjaxFramework 等ajax庫。他們封裝了操作AJax得大部分細節操作,你通常只需要寫一些handler,然後服務器端按固定格式返回相應的XML就可以了
當然還有很多豐富應用程序開發的腳本。
2.1 Dojo 等,非常抽象的一個庫,重新定義了自己的事件分發機制,不過界面上仍然是Html得界面。
2.2 Bindows,qooxoo等Javascript widget,他們使用自己的界面風格,基本上,很難和原有的網站結合
無論上面那種Javascript庫,調用的時候都可能會引起浏覽器加載的一些過載,這是很討厭的事情。
當然如果你這樣用了,你已經實現了第二個層次,即AJaxian化了。
3 和某種腳本語言榜定的標簽庫,自動生成AJax的訪問腳本,和服務器端交互
DWE Java
AJaxac PHP
通過封裝的形式,操作AJax得Javacript被封裝了起來,更好的實現了組件級的重用。
如果你到了這一步,應該算進入社會主義了
4 當然中級目標是動態加載的腳本和官方的編程語言例如JSF結合起來,然後可以用GUI得手段動態變成。實現真正的Web Application得RIA。