ajax|重新整理|頁面
曾記得INTERNET被使用者稱作"world wide wait"嗎? web又回到了新石器時代了麼? 在許多應用中, web仍然沒有得到很大的改變。充斥著form、按鈕,頁面轉移,等待,頁面重新整理,糾正錯誤,點擊、等待……這可真夠受的。
現在的許多網站,例如許多經過精心設計的網站得到了很大的提高。需要更多的使用者響應,這樣瀏覽器會在伺服器處理完以後才得到響應。 例如google map就是這樣工作的:客戶機會將所有的資訊緩衝起來,這樣使用者在移動地圖,放大等活動的時候,就不再需要和伺服器進行繁瑣而緩慢的資料互動。
AJAX是Asynchronous JavaScript and XML的簡稱。主要是由一組大家比較熟悉的技術組建而成:
JavaScript:指令碼語言……
XMLHttpRequest:Javascript中的一個對象,可以通過HTTP協議和伺服器進行通訊。Ajax的許多技巧都是通過這個對象去實現的, 所有的主流瀏覽器,如Mozilla Firefox, Internet Explorer 5, Safari, Opera 7.6 都支援這個對象。
Extensible Markup Language (XML):
XMLHttpRequest可以使用xml檔案和伺服器進行通訊。
HTML CSS:
文件物件模型DOM:
XSLT:
AJAX可以說不是一個新的技術,而是已有技術的再利用。 重點介紹一下XMLHttpRequest對象:該對象可以從伺服器得到資料,使用者可以很方便的使用這些資料。對象有自己的API:
表 1-1. XMLHttpRequest 屬性
屬性名稱 |
類型/描述 |
onreadystatechange |
回呼函數; 將此屬性設定成那些將被調用的函數。 |
readyState |
數字; 0 表示沒有初始化, open() 函數沒有調用; 1表示載入, send() 函數沒有調用; 2 表示載入了, send() 已經調用,且headers/status 是可用的; 3 互動的, responseText 持有部分資料; 4 表示完成. |
responseText |
string;返回的普通文本. responseXMLDOM Document object; an XML return value. status響應的狀態碼,例如200 (ok) 404 (不存在). |
statusText |
string; 於HTTP 響應狀態相關的文本。 |
表 1-2. XMLHttpRequest方法方法名傳回值/描述
abort() |
void; 取消HTTP請求. |
getAllResponseHeaders() |
string; 返回所有的相應頭 |
getresponseHeader(string header) |
string; 返回指定head資訊的值 |
open(string url,string asynch) |
void; 為HTTP 要求準備,並且 指定是否同步 |
send(string) |
void; 發送http請求。 |
setHeader(string header,string value) |
void; 佈建要求頭, 但是必須首先調用open函數 |
<