最近許多人都在談論Google Maps地圖資訊服務,討論其好用之處。

究其原因,不僅只是Google Maps讓我們看到全球各地的衛星照片(甚至看得到連雷達都看不到的隱形戰機),更因為Google採用有別於傳統的架構。

以往的地圖服務,不論是縮放或是移位,每一次都必須整頁全部更新。例如使用者選擇放大地圖,則網頁伺服器必須將新的地圖資訊,以及整個網頁的所有元件,全部再組合成網頁,並且傳送至使用者端。可以想見,在網頁伺服器重組網頁、傳回全新的整頁網頁的期間,使用者就只能等待。

Google Maps並不是採取上述傳統的作法,而是只更新需要更新的地圖資訊部分。當使用者選擇放大地圖後,整個網頁就只有地圖部分會改變圖像,網頁的周邊元件都不會變動。對使用者而言,網頁並沒有整頁更新。

受限於傳統網頁傳送的型式,網頁必須逐次更新整頁,其使用介面一直無法像視窗應用程式的使用介面一樣。然而,上述Google Maps網頁互動使用經驗,卻非常接近使用一般的地圖軟體。何以能達到如此效果?是Google採用了什麼新穎的技術嗎?Google在旗下諸多服務中使用(如Gmail、Google Suggest、Group),而新興的服務如Flickr、A9.com、MSN Virtual Earth Project、Technorati等也紛紛採用,這個技術是何以重要?

Google所使用的技術,目前多數人稱之為AJAX(Asynchronous JavaScript and XML),由字面上看來這倒不是什麼嶄新的技術,AJAX的3種組合元素:DHTML、JavaScript、XMLHTTP,以及非同步的技術,都已經有人在使用,然而透過這些新興網站服務的推波助瀾,讓大家看到了下一代網頁發展的契機──更豐富的互動式使用介面,與Rich Client、Smart Client,有異曲同功之妙。

AJAX像是網頁用戶端與網頁伺服器端之間的代理,雖然用戶端的網頁看起來並未更新,但AJAX可能已經在幕後非同步地與網頁伺服器交換資料了,像是地圖這種需要傳輸大量資料的應用,在傳統同步更新的架構下,要等待大量資訊傳完,使用者才看得到地圖圖片,但透過AJAX在幕後不斷地與網頁伺服器交換資料,前端使用者就不會感受到因傳輸大量資料而必須等待。

此外,透過非同步更新的方式,可以更平順地在背景進行資料檢核等等工作,例如檢查表單的格式,以往若要在使用者輸入資料後立即檢查,就必須藉助用戶端電腦的JavaScript,若要由伺服器端檢查,就必須接受網頁整頁更新的不便;透過AJAX,則可以在不更新網頁的情況下,由伺服器端來檢查。

AJAX這個詞彙誕生於今年2月,才歷經短短的幾個月就成為熱門討論的話題,甚至有人認為AJAX是2005年上半年最有影響力的技術。這會不會只是一股熱潮?最近微軟的網路平臺與工作團隊,在部落格公布微軟的AJAX專案──代號Atlas,預計將在2周後的PDC05會議中首度公開,它將支援ASP .NET 2.0,未來可望整合至Visual Studio 2005。微軟的加入,勢必更炒熱AJAX的熱度,而且.NET與JavaScript的整合度可望更好。

不過,AJAX也不是毫無缺點。AJAX能做到什麼程度?該如何設計AJAX型式的網頁?請見本期的專題報導。(請見第48頁)

作者簡介


Advertisement

更多 iThome相關內容