非同步連接伺服器

var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else if(window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
}

非同步訪問是透過XMLHttpRequest物件來實現的。全域變數xmlHttp,主要是考慮到非同步物件在整個頁面處理中有可能使用到。透過if語句來進行瀏覽器判斷,如果是IE瀏覽器則採用ActiveXObject方法,不然,則直接利用XMLHttpRequest()函數。

XMLHttpRequest 物件方法:

 方法    描述 
abort()停止當前請求
getAllResponseHeaders()擷取回應的所有Http頭 
getResponseHeader() 擷取指定的Http頭 
open(method, url) 建立請求,method指定請求類型,如 GET、POST.. 
send(content) 發送請求 
setRequestHeader() 指定請的Http頭 

XMLHttpRequest 物件屬性:

 屬性            描述 
onreadystatechange發生任何狀態變化時的事件控制物件 
readyState 請求狀態
0 = 未初始化
1 = 正在發送請求
2 = 請求完成
3 = 請求成功,正接收資料
4 = 資料接收成功
responseText 伺服器返回的本體內容文字 
responseXML 伺服器返回的XML,可以當作DOM處理 
status 伺服器返回的HTTP請求回應值
200 = 請求成功
202 = 請求被接收,但處理未完成
400 = 錯誤請求
404 = 資源未找到
500 = 內部伺服器錯誤 
statusText 伺服器返回的狀態文字訊息


解決非同步連接伺服器IE瀏覽器暫存問題(待測試):

在訪問位址URL加上與時間毫秒數相關的參數。例:

var goURL = "" + new Date().getTime(); // 不斷變化位址
xmlHttp.open("GET", goURL, true);



Comments