Wednesday, December 13, 2006
[AJAX] What is AJAX (1)
之前在堯@部落格中看到了一系列的「AJAX」的文章,筆者以簡易明瞭的條列式方式,一一解說,對於原本半知半解的我,受益良多...透過CC的授權,將文章內容轉戴於底下:.原文出處:
※文章內容:
堯@部落格 -> AJAX漫談
Ajax(Asynchronous JavaScript + XML)是在2005年二月由Jesse James Garrett在一篇名為Ajax: A New Approach to Web Applications所大力推廣。當時很快就獲得了很大的迴響。但是ajax並不是一項新的技術,而只是運用了過去原本就有的技巧所混合出來的一項概念。早在Garrett提出之前,就有很多人運用這樣的技術,例如Google Map。javascript 和xml的技術混用,我在2000年的一個CMS專案中就曾經運用過(我那時候根本沒聽過什麼ajax),而且其優點就如同Garrett所提,可以充分 改善Web Pages的不足之處。只是早期並沒有這個名詞,很多進階的web developer默默的在運用這部分的技術而已。
在傳統的web架構上面,有很多缺點限制了web application的發展:
- 互動性不足:傳統的網路架構,是讓使用者在網頁上面點透過連結,跟遠端產 生的頁面一頁一頁的重新載入(Reload),所以每當使用者點了一個連結,就必須呆呆的等待右上方的地球(以前的netscape)或是IE的 Microsoft那面旗子飄玩,然後用戶才知道互動的結果是怎樣。這樣的互動其實在90年代就讓人覺得很方便了,但是在現今一切都要求快狠準的年代,這 樣的互動性很明顯的就達不到我們的標準(這句話可以借給卓榮泰說明一下什麼是動態道德標準)。
- 校能不足:也由於傳統的web架構,使用者都必須每次把頁面重新的載入一次,所以對於系統的資源就很浪費。通常我們在讀取一個頁面的時候,資料讀進來都還得要經過處裡一下,就像是在我的部落格裡 面,右方的side bar每次讀進來都必須要跑過一次javascript去抓del.icio.us的tag然後轉成看到的樣子。這樣當然很愚蠢啊,因為幾乎都是相同的東 西,只是當初制定web架購,為了讓每一頁的資源都成功的獲得釋放,所以相對的就造成現在的狀況。也就是因為這個先天不良,所以Ajax架構出來的程式, 幾乎都捨棄了下一頁的功能。甚至有些比較狠的,連上一頁也一併拿掉了(javascript就能做到)。這樣一但進到網頁裡面,所有在網頁內做的事情,都 在彈指之間做到了,使用者只覺得網站的互動性很強。不過這點其實也有點trade off,提升互動性的後果,就是離線閱讀(offline mode)會讀不到東西,網站會變的很怪。不過在比例上,現在好像沒看過有人還在用離線閱讀了,畢竟今日的網路價格很便宜,已經不是當初撥接每分鐘計價的 時代了。
- 介面太過簡單:在傳統的web post的模式,實在做不了太複雜的工作,一個表單的Form要填寫的資料沒辦法太複雜,如果要填寫的頁面資料超過一頁,那往往都是透過post的方式把 資料一頁頁的存在server端,這就很討厭啦,因為為了要能照顧user資料不用白填,所以就必須要追蹤user之前填過的所有資料,session cookie的什麼技術都用上了,為的只是要打破當初制定的那個能提供離線閱讀的架構,囧rz~~~~。
- 資源浪費:在傳統的web pages上面,你會看到大部分的人都會把相關可以點的東西,越放越多在同一個頁面上,而每次做了一個連結,頁面重讀後,為了讓使用者不知道什麼時候才會 點的功能能夠一覽無遺的準備在那邊讓用戶可以隨時點下去,所以只好再重新送了一次。網路的資源就在這樣的一頁一頁的翻動中,重複著送出一些相同的東西。 (Google在剛出來的時候因為介面相當乾淨,反而獲得了大部分的人的認同,製造出一種很有效率的印象)
在Ajax之前,一份由當時MicroSoft提出的IE4架構裡面(沒錯,就是IE4,1997年),介紹了IE4提供的XML物 件,並讓使用者可以透過javaScript來操作xml物件。記得那時候的瀏覽器Netscape必須要使用object的方式load xml object進來才能進行操作,這點其實非常的不方便,所以我後來做的專案都指定要求客戶的web application架構必須使用IE作為標準瀏覽器,說起來我也算是當時殘害netscape的一個幫兇~~~。而現在ajax所用的技術,再當時就 都有提供了。當時流行的概念是soap,但是由於soap需要大量的伺服器端的協助,所以好像也沒有紅起來。 ajax之所以會大紅大紫,原因還是來自於blog和web 2.0的概念大量的被複製,相對於javascript本身架構並沒有太大的變化,但是web的技術門檻由於提供服務的服務性網站變多,很多服務也都相對 的提供xml做為data source,這點讓有programing能力的blogger趨之若鶩,紛紛的透過ajax技術把服務網站的資料整合到blog裡面。總而言之,就是 整個網路消費市場習慣的改變,才讓ajax因此傳播開來,而這一項沒有發明的發明,隨著web 2.0的散佈,慢慢的在網路界變成一個神話。(沒有發明的發明在90年代指的是SOAP,當時還有很多人出來指稱soap會變成影響網路發展的一個重要指 標,但是呢...,或許現在還沒到檢驗的時候吧,we will see...)
0 Comments:
Plz Post a Comment / 拜託你留個言啦...^^"