Web應用能像桌面軟件那樣具有飛快的響應速度和豐富的呈現形式嗎?打開王建碩的Blog上寫于6月16日的那篇網志,用鼠標隨意選中一些文字,你會立刻發現,這段文字下面迅速被標上了一條紅色的粗線,很新奇吧。王建碩算得上是國內網際網路圈子裏的一位著名博客,曾經在微軟做過6年技術,從今年3月開始負責eBay子網站客齊集的運作,同時還經常維護著他那個人氣非常旺的Blog。王建碩說,他的新嘗試其實並不神秘,只是在原先的靜態網頁上加了一段很簡單的JavaScript代碼,實現了讓任何人可以在他的頁面上加批注的小功能。本質上還是老技術,只是穿上了一件嶄新的外衣。啟發王建碩進行新嘗試的這件"外衣"是在今年2月,被一位叫做傑西‧詹姆斯‧加勒特(Jesse James Garrett)的美國人創造的。傑西是研究用戶界面的Adaptive Path公司負責用戶體驗策略的主管,他在2月18日發表了一篇題為《Ajax:一個Web應用的新途徑》的論文,明確的將Ajax定義為"Asynchronous JavaScript + XML"的簡稱,也就是異步的JavaScript和XML處理。從原理上看,主要是Ajax可以通過調用HttpRequest實現與服務器的異步通訊,並最終在網頁中實現豐富友好的用戶界面。"我們能提供的Web應用體驗和用戶從桌面軟件中得到的體驗之間存在著一個鴻溝,不過,它正在消失。"創造了Ajax這個新名詞的傑西這樣說道,"這要感謝我們稱為Ajax的一個新的Web應用框架。"
老技術的新意雖然名字是全新的,但Ajax的三大要素"A、J和X",哪一個都已經是出現多年的老牌技術明星了。而且事實上,這種允許用戶任意修改網頁上呈現的信息要素,同時無需向服務器重新發送請求和刷新頁面,就能馬上看到修改結果的新體驗形式早就已經出現在了多家技術公司的產品中。只不過,在Ajax這個詞匯正式問世並廣泛流行之前,業界並沒有對諸如此類的新形式的名稱有過什麼統一的表達。因此,傑西的貢獻不言而喻。Google在去年推出的Orkut和Gmail,以及今年陸續發布的最新版Google Groups、Google Suggest和Google Maps中,都給了Ajax充分的表現空間。Google Suggest能夠根據你的輸入立刻顯示建議條目,而不需要刷新頁面;Google Maps給用戶呈現出可以任意放大、縮小和移動圖片的體驗。已被雅虎收購的Flickr.com其提供的圖片管理功能雖然稱不上有多強大,但可以非常方便的對圖片的標題、描述以及標簽等內容進行任意修改,你會發現,那些改變在你結束輸入的同時就留在了網頁上。除此之外,亞馬遜的A9.com和微軟也在最近半年對Ajax青睞有加,其中微軟的到來顯然更加具有指向性的意義。微軟已經在新推出的MSN Space以及MSN Virtual Earth服務中應用了Ajax技術,並且還在7月底宣布,將會在11月正式發布Visual Studio 2005時集成一個名為Atlas的軟件,據說這將是一種供開發人員使用的面向客戶的"新技術框架",利用Atlas會讓開發人員更方便的創建Ajax程序,測試版的Atlas將在9月推出。又是捆綁的好戲。
"網頁的旁邊是什麼?"微軟不失時機的加入,從側面也反映了Ajax的熱門程度,有分析人士甚至將Ajax稱為是"2005年上半年最具影響力的技術"。盡管如此,許多技術分子仍然對Ajax的流行提出了質疑:這是一個詞匯、一種形式還是一項技術的流行?有人在Blog上這樣寫道:"盡管Ajax看起來與眾不同,但是它並沒有脫離傳統的HTTP模式,只是讓用戶看起來與傳統的方式不同而已。"傑西自己也說,"Ajax並不是一種技術,實際上是幾種技術的結合體,而且每一部分技術都在自己的方向上枝繁葉茂","Ajax的出現只是改善用戶在現有B/S模式下對Web應用的一種體驗途徑"。"在有了Ajax之前,我們總覺得Google Map和Flickr代表著一種新的東西,那種拖一下就過去了、點一下就編輯了的用戶體驗確實讓人眼界大開,而且為之激動,但這個東西是什麼呢?"王建碩在他的Blog上寫道,"臨界點(Tipping Point)上,就等一個名字。Ajax這四個字母來得恰逢其時。"在王建碩看來,Ajax是把一壇老酒裝到了一個新瓶子裏,他的觀點無疑很具有代表性。針對Ajax的流行,網絡上有相當一部分的觀點都認為,這是"技術復古風"、"一碗隔夜的冷飯",甚至說"Ajax有99%是糟糕的"。但實際上,Ajax的重點在A而不是J與X,把A和J、X組合成一體才是Ajax如此受人追捧的原因,Google他們的選擇是在Ajax這個名詞誕生之前,而不是之後。王建碩在前不久接受本刊記者採訪時曾提到過客齊集的一個試驗性計劃,要把整個網頁都做成可以拖動甚至是翻轉的形式,"曾經有個客戶問過我,網頁的旁邊是什麼?當時我還真不知道怎麼回答。但現在,用Ajax的方式我可以很輕松的給出答案。""在創建Ajax應用的過程中,最大的挑戰並不在技術層面,Ajax的核心技術其實都是成熟、穩定並且人所共知的,"傑西在他那篇著名的"Ajax宣言"中這樣結尾,"對這些應用的開發者而言,真正的挑戰在于:要徹底忘掉我們認為我們已經看到了Web的邊界,然後再去為可能性探尋一個更寬廣和豐富的領域。這會非常有趣。"(主筆|陳瓊)