ajax|精華
在使用瀏覽器瀏覽網頁的時候,當頁面重新整理很慢的時候,你的瀏覽器在幹什嗎?你的螢幕內容是什嗎?是的,你的瀏覽器在等待重新整理,而你的螢幕內容是一片空白,而你在螢幕前苦苦的等待瀏覽器的響應。
開發人員為了克服這種尷尬的局面,不得不在每一個可能需要長時間等待響應的頁面上增加一個DIV,告訴使用者“系統正在處理您的請求,請稍候……”。
現在,有一種越來越流行越熱的“老”技術,可以徹底改變這種窘迫的局面。那就是AJAX。如今,隨著Gmail、Google-maps的應用和各種瀏覽器的支援,AJAX正逐漸吸引全世界的眼球。
一、AJAX定義
AJAX(Asynchronous JavaScript and XML)其實是多種技術的綜合,包括Javascript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest。其中:
使用XHTML和CSS標準化呈現,使用DOM實現動態顯示和互動,使用XML和XSTL進行資料交換與處理,使用XMLHttpRequest對象進行非同步資料讀取,使用Javascript綁定和處理所有資料。
在AJAX提出之前,業界對於上述技術都只是單獨的使用,沒有綜合使用,也是由於之前的技術需求所決定的。隨著應用的廣泛,AJAX也成為香餑餑了。
二、現狀與需要解決的問題
傳統的Web應用採用同步互動過程,這種情況下,使用者首先向HTTP伺服器觸發一個行為或請求的呼求。反過來,伺服器執行某些任務,再向發出請求的使用者返回一個HTML頁面。這是一種不連貫的使用者體驗,伺服器在處理請求的時候,使用者多數時間處於等待的狀態,螢幕內容也是一片空白。如下圖:
自從採用超文本作為Web傳輸和呈現之後,我們都是採用這麼一套傳輸方式。當負載比較小的時候,這並不會體現出有什麼不妥。可是當負載比較大,回應時間要很長,1分鐘、2分鐘……數分鐘的時候,這種等待就不可忍受了。嚴重的,超過回應時間,伺服器乾脆告訴你頁面不可用。另外,某些時候,我只是想改變頁面一小部分的資料,那為什麼我必須重新載入整個頁面呢?!當軟體設計越來越講究人性化的時候,這麼糟糕的使用者體驗簡直與這種原則背道而馳。為什麼老是要讓使用者等待伺服器取資料呢?至少,我們應該減少使用者等待的時間。現在,除了程式設計、編碼最佳化和伺服器調優之外,還可以採用AJAX。
[1] [2] [3] 下一頁