近兩年web2.0正成為網路使用者關注的焦點,而Ajax這個名字也被頻繁的與web2.0一併談論,不過一個令人有些費解的現象是,並不是所有的使用者都能清楚的說出Ajax到底是什麼。大家對web2.0本身也是眾說紛紜,很難下一個準確的定義,我覺得在這方面到頗有異曲同工之處。
這個現象確實有一定的普遍性,原因也是多方面的。最重要的原因在於大家往往只從技術的角度來解釋Ajax,而事實上Ajax並不是一個單一的技術概念。在技術範疇之外,Ajax還包含了很多web使用者體驗方面的元素,這也是為什麼輿論普遍認為Ajax是一種web2.0技術的原因。畢竟web2.0的創新價值有很大一部分來自於對使用者體驗和使用者作用的重視。
以管窺豹的方式確實在Ajax的認識上造成了不少誤解,這可能就是那些以"新技術"的角度瞭解Ajax的用`戶不得門徑的原因吧。
應該說Ajax首先就不是一項純粹的技術,而更近似於一個技術架構。同時Ajax體系當中也並沒有什麼新的技術元素,其核心是Javascript技術,一種以往被認為與公司專屬應用程式絕緣而只適用於在用戶端展示一些"小把戲"的程式設計語言,而XML,XHTML,DOM,XML-HTTPREQUEST,CSS等經常被用於實現Ajax的技術元素也是多年應用的成熟技術。
不過就是這些常用技術的創造性組合為我們帶來了令人歎服的使用者體驗,可見度模式的創新是多麼具有衝擊力。
Ajax徹底顛覆了傳統web應用在使用者互動方面的模式,這是不可否認的。在傳統的web體驗當中,使用者已經習慣了,在請求伺服器資料之後的等待和顯示這些資料時的頁面重新整理,這種互動方式是低效和不連貫的。
Ajax所倡導的方式則能夠大大最佳化使用者的使用感受。由於在伺服器和瀏覽器之間的資料傳遞交由JavaScript控制,開發人員得以跳出以往嚴格的請求接聽模式從而構建更具有方便使用性的web應用。
舉一個簡單的例子,當使用者請求新的資料內容時,傳統的web機制只能等待伺服器將全部資料返回,然後重新整理並重新顯示整個頁面;而Ajax只請求那些需要改變的內容,同時只改變那些需要改變的地區,而並不對這個頁面進行重新整理,這種能力不但使重新整理成了Ajax帶給使用者的最主要印象,而且由於資料傳遞量的有效降低使得Ajax成為緩解web效能瓶頸的重要武器。
從這個角度來看,Ajax確實稱得上是web2.0技術的典型代表,這不禁讓我想起了windows圖形作業系統替代DOS作業系統的過程。除了在使用者介面上展現出更大的吸引力之外,系統核心的變革也在發生重要的作用。
視窗作業系統在外觀和使用上確實帶來了巨大變革,但是使用者體驗的巨大提升與內在功能的支援是分不開的,Ajax之於web2.0也是如此。
回顧windows的替代,Ajax正在經曆同樣的過程。除了在使用者介面上展示更大的吸引力之外,Ajax第一次使web使用者介面實現了多任務。由於頁面可以不需要全部重新整理,在一個地區正在等待資料返回並改變自己外觀的時間裡,使用者則可以不必等待而繼續執行其他動作;相應的,使用者向伺服器提交資料也不必等待資料被全部傳送到伺服器再進行其他動作。
也就是說,使用者與瀏覽器的操作互動,瀏覽器與伺服器的資料互動是可以"非同步"進行的,這也是Ajax這個名字的由來,Ajax的英文全稱是Asynchronous Javascript and XML 。
Ajax對使用者群體的號召力已經獲得了很多證明,應用隨需求而動,Ajax也正成為開發群體新的追逐目標了,相信在web開發領域一定會掀起不小的波瀾。但是很多人有一個疑問,Ajax是否已經給人們展示了一條康庄大道呢?按照IT界的發展規律來看,至少目前還沒有出現過完美的技術。
究其本質來看,Ajax對於傳統開發陣營來講並不是一種顛覆性的衝擊,而更貼近於一種增強。基於web應用體驗的改善以及為互動方式提供的更多的可能性,會有越來越多的web應用程式採用Ajax機制實現。
目前已經湧現出大量成熟的Ajax應用,這些具體的應用或者自成體系的開發架構,或者是與各種程式設計語言的接合,事實上Java ,PHP,ASP等主流web開發平台已經都可以與Ajax架構進行良好的掛接。
話說回來,無論是Ajax的模式還是所依託的具體技術在很多年前就已經出現了,之所以到今天才獲得應用和認同,說明再先進的東西也只有在被需要的情況下才能得到真正的發展。
但是,目前Ajax還處於前景與風險並存的階段。雖然在應用領域Ajax已經取得了一定的進展,並且在使用者認知度和影響力上也具有了相當的積累,但是其發展道路仍不能說一馬平川。
Ajax並不是一支獨秀,包括windows-media的flex等很多技術體系都在嘗試提供更強的使用者體驗,隨著web非同步互動的需求成長,會有越來越多的技術湧現出來。而目前Ajax的實現也是多種多樣的,不能儘早的形成標準無疑將分散Ajax的發展力量。
另外,不但使用者群體中存在著對Ajax的認識模糊,即使是專業的開發人員,對Ajax的理解也千差萬別。很多開發人員將Ajax視為一支不折不扣的潛力股,軟體開發領域的下一個JAVA,這些都過分強調了Ajax在在市場效應方面的作用,反而在一定程度上扼殺了Ajax的真正價值。與其進行浮躁的期待和衝動的吹捧,不如切實地學習和發揮Ajax在使用者互動方面地優點。