readyState 狀態碼
| 值 | 狀態 | 說明 |
| 0 | 未初始化 | 尚未呼叫 open() |
| 1 | 已建立 | 已呼叫 open(),未呼叫 send() |
| 2 | 已發送 | 請求已送出,正在處理 |
| 3 | 處理中 | 回應已有部分資料可用 |
| 4 | 完成 | 請求完成,回應就緒 |
JavaScript 核心程式碼
var xmlHttp;
function create() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); // IE
} else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest(); // 非 IE
}
}
function Request(url) {
xmlHttp.open("GET", "for.php?id=" + url, true); // true = 非同步
xmlHttp.onreadystatechange = ip985;
xmlHttp.send(null);
}
function ip985() {
if (xmlHttp.readyState == 1) {
document.getElementById('IP985').innerHTML = "請求已建立,準備發送……";
}
if (xmlHttp.readyState == 4) {
var v = xmlHttp.responseText;
document.getElementById('ip985').innerHTML = v;
}
}
說明
- 利用
readyState 變化更新頁面提示,模擬進度條效果。
- 實際專案中可結合伺服端回傳進度百分比,配合
readyState==3 即時更新。
- IE 使用
ActiveXObject,現代瀏覽器使用 XMLHttpRequest。