查看單個文章
舊 2006-07-05, 05:46 AM   #4 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

什麼是Ajax?
Ajax的定義
Ajax不是一個技術,它實際上是幾種技術,每種技術都有其獨特這處,合在一起就成了一個功能強大的新技術。Ajax包括:
XHTML和CSS
使用文檔對像模型(Document Object Model)作動態顯示和交互
使用XML和XSLT做資料交互和操作
使用XMLHttpRequest進行異步資料接收
使用JavaScript將它們綁定在一起
傳統的web應用模型工作起來就像這樣:大部分界面上的用戶動作觸發一個連接到Web服務器的HTTP請求。
服務器完成一些處理---接收資料,處理計算,再訪問其它的資料庫系統,最後返回一個HTML網頁面到客戶端。這是一個老套的模式,自採用超文本作為web使用以來,一直都這樣用, 但看過《The Elements of User Experience》的讀者一定知道,是什麼限制了Web界面沒有桌面軟件那麼好用。
http://www.dvbbs.net/ShowImg.asp?p=/...9410it23_1.png
圖1: 傳統Web應用模型(左)與Ajax模型的比較(右).這種舊的途徑讓我們認識到了許多技術,但它不會產生很好的用戶體驗。當服務器正在處理自己的事情的時候,用戶在做什麼?沒錯,等待。每一個動作,用戶都要等待。
很明顯,如果我們按桌面程式的思維設計Web應用,我們不願意讓用戶總是等待。當界面載入後,為什麼還要讓用戶每次再花一半的時間從服務取資料?實際上,為什麼老是讓用戶看到程式去服務器取資料呢?
Ajax如何不同凡響
通過在用戶和服務器之間引入一個Ajax引擎,可以消除Web的開始-停止-開始-停止這樣的交互過程. 它就像增加了一層機制到程式中,使它響應更靈敏,而它的確做到了這一點。
不像載入一個網頁面一樣,在會話的開始,瀏覽器載入了一個Ajax引擎---採用JavaScript編寫並且通常在一個隱藏frame中。這個引擎負責繪製用戶界面以及與服務器端通訊。Ajax引擎允許用異步的方式實現用戶與程式的交互--不用等待服務器的通訊。所以用戶再不不用打開一個空白視窗,看到等待游標不斷的轉,等待服務器完成後再響應。
http://www.dvbbs.net/ShowImg.asp?p=/...3610it23_2.png
圖 2: 傳統Web應用的同步交互過程(上)和Ajax應用的異步交互過程的比較(下).通常要產生一個HTTP請求的用戶動作現在通過JavaScript調用Ajax引擎來代替. 任何用戶動作的響應不再要求直接傳到服務器---例如簡單的資料校驗,記憶體中的資料編輯,甚至一些網頁面導航---引擎自己就可以處理它. 如果引擎需要從服務器取資料來響應用戶動作---假設它提交需要處理的資料,載入另外的界面代碼,或者接收新的資料---引擎讓這些工作異步進行,通常使用XML, 不用再擔誤用戶界面的交互。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次