天天看點

什麼是Ajax(轉)

======================================================

注:本文源代碼點此下載下傳

======================================================

ajax的定義

ajax不是一個技術,它實際上是幾種技術,每種技術都有其獨特這處,合在一起就成了一個功能強大的新技術。ajax包括:

xhtml和css

使用文檔對象模型(document object model)作動态顯示和互動

使用xml和xslt做資料互動和操作

使用xmlhttprequest進行異步資料接收

使用javascript将它們綁定在一起

傳統的web應用模型工作起來就象這樣:大部分界面上的使用者動作觸發一個連接配接到web伺服器的http請求。

伺服器完成一些處理---接收資料,處理計算,再通路其它的資料庫系統,最後傳回一個html頁面到用戶端。這是一個老套的模式,自采用超文本作為web使用以來,一直都這樣用, 但看過《the elements of user experience》的讀者一定知道,是什麼限制了web界面沒有桌面軟體那麼好用。

什麼是Ajax(轉)

圖1: 傳統web應用模型(左)與ajax模型的比較(右).

這種舊的途徑讓我們認識到了許多技術,但它不會産生很好的使用者體驗。當伺服器正在處理自己的事情的時候,使用者在做什麼?沒錯,等待。每一個動作,使用者都要等待。

很明顯,如果我們按桌面程式的思維設計web應用,我們不願意讓使用者總是等待。當界面加載後,為什麼還要讓使用者每次再花一半的時間從服務取資料?實際上,為什麼老是讓使用者看到程式去伺服器取資料呢?

ajax如何不同凡響

通過在使用者和伺服器之間引入一個ajax引擎,可以消除web的開始-停止-開始-停止這樣的互動過程. 它就像增加了一層機制到程式中,使它響應更靈敏,而它的确做到了這一點。

不像加載一個頁面一樣,在會話的開始,浏覽器加載了一個ajax引擎---采用javascript編寫并且通常在一個隐藏frame中。這個引擎負責繪制使用者界面以及與伺服器端通訊。ajax引擎允許用異步的方式實作使用者與程式的互動--不用等待伺服器的通訊。是以使用者再也不用打開一個空白視窗,看到等待光标不斷的轉,等待伺服器完成後再響應。

什麼是Ajax(轉)

圖 2: 傳統web應用的同步互動過程(上)和ajax應用的異步互動過程的比較(下).

通常要産生一個http請求的使用者動作現在通過javascript調用ajax引擎來代替. 任何使用者動作的響應不再要求直接傳到伺服器---例如簡單的資料校驗,記憶體中的資料編輯,甚至一些頁面導航---引擎自己就可以處理它. 如果引擎需要從伺服器取資料來響應使用者動作---假設它送出需要處理的資料,載入另外的界面代碼,或者接收新的資料---引擎讓這些工作異步進行,通常使用xml, 不用再擔誤使用者界面的互動。

======================================================

在最後,我邀請大家參加新浪APP,就是新浪免費送大家的一個空間,支援PHP+MySql,免費二級域名,免費域名綁定 這個是我邀請的位址,您通過這個連結注冊即為我的好友,并獲贈雲豆500個,價值5元哦!短網址是http://t.cn/SXOiLh我建立的小站每天訪客已經達到2000+了,每天挂廣告賺50+元哦,呵呵,飯錢不愁了,\(^o^)/

繼續閱讀