火紅的新技術-AJAX

作者:蔡毓娟

  相信使用過Google Map的人一定對他Zoom in/out及拖拉地圖時快速的反應速度感到驚奇,在Internet Web browser上面如何能如此快速的顯示或搜尋地圖資訊感到存疑!是的!這是可能的! Google Map使用的技術是先將主要部分的地圖下載到browser上面顯示出來,然後利用使用者在瀏覽找尋下一個切入點的過程中已經偷偷的把地圖資料傳到使用者的電腦上,讓使用者在進行下一次的搜尋與移動的時候能快速的反應使用者的需求。將Google Map的運作模式說穿了,其實僅僅只是一個很簡單的想法,他卻可以帶給使用者非常愉快的使用經驗!Google Map他所使用的技術就-AJAX,由於Google Map的廣泛被使用,使得AJAX的技術成為各家關注的焦點,也讓AJAX技術成為今年度最火紅、最熱門的技術!AJAX技術也廣泛的使用在強調互動性高的Web 2.0上面!

  AJAX的完整名稱為「Asynchronous JavaScript and XML」,他是一種非同步結合JavaScript和XML兩種技術的網頁開發技術。AJAX這個名詞是在2005年2月由Jesse Jame Grrentt在「AJAX: A New Approach to Web Applications」一文中首次被提出,由於Google Map, Google Suggest, Gmail等成功的商業應用出現,加提高了此項技術能見度,更由於多家的browser (如: Internet Explore, FireFox, Mozilla, Opera等)的支援,使得AJAX走向更成熟、更容易使用的技術。

  傳統的Web應用程式是由用戶端填寫表單後,按下確定鍵後向Web伺服器提出一個請求,伺服器接收到請求之後處理由用戶端傳來的表單,然後送回一個新的網頁。如此一來一往浪費許多的網路頻寬,並且由於每次的交互作用都需要向伺服器發出請求,導致使用者需要花時間在等待伺服器處理完畢並將結果回傳到用戶端,造成使用者浪費時間在等待上面,也浪費了許多寶貴的網路頻寬資源。其運作模式如左圖所示。

  AJAX的應用程式則可以僅向伺服器提出請求並僅取回少數必要之數據即可,他利用一些XML的服務介面,以及在用戶端使用JavaScript的技術來處理伺服器的回傳資訊。因為伺服器與用戶端的資料交換量減少,而且有些伺服器的處理工作也可以交由使用者端的機器自行完成,因此使用者就能明顯的感受到伺服器的反應速度變快了!其運作模式如右圖所示,AJAX engine能夠獨立的與伺服器做非同步的溝通,直接由AJAX engine與使用者端做溝通,使得使用者感受不到等待伺服器回應的時間。

  AJAX最大的優點是能在不更新整個網頁的前提下與使用者做互動,這使得用戶端的回應速度更快,且可以減少網路上傳送一些重複的網頁資料。AJAX不需要外掛任何的程式,只要用戶端的電腦能夠支援JavaScript在上面執行即可。但是AJAX也不是完全沒有缺點,對AJAX最大的批評就是browser上的回上一頁的按鈕無法在使用。因為browser上面的歷史紀錄僅能紀錄靜態的資料,對於動態的資料並無法紀錄,因此會對使用者想利用回上一頁的功能取消前一動作造成困擾。

  AJAX所要面對的未來與挑戰,由於AJAX技術主要是要仰賴browser才能運作,目前各家browser對於JavaScript/DOM/CSS的支援及相容性並不一致,導致Web應用程式無法同時在各家不同之browser皆能正常的運作,這也是目前Web應用程式所面臨的夢靨。另外JavaScript的執行效率不彰也是AJAX的另一個隱憂,而這個問題並非程式設計師所能解決的難題。在Microsoft公司於今年年底要正式推出支援AJAX的專屬solution之後,AJAX勢必成為一種系統開發的風潮,期待更多的標準能夠制定出來,讓各家browser都能遵守並能改善執行效率的問題。

  AJAX為人們帶來不同於以往的Web使用感受,然而它所需要面對的挑戰依然很多,期待AJAX成為一個更為成熟的技術與開發平台,因而能帶給使用者更愉快的使用經驗。