2015-11-10 75 views
1

我想檢查一個未使用jQuery的站點的活動Ajax請求,所以我怎樣才能編寫相當於jQuery.active的?相當於純Javascript的jQuery.active

我想檢查ajax請求是否在訪問完頁面後完成。我發現window.XMLHttpRequest類,但不知道如何使用它。任何幫助讚賞。

+0

檢查http://stackoverflow.com/a/3148506/2025923。它只是一個在jQuery對象上定義的變量。 – Tushar

+0

@Tushar謝謝,但每個解決方案都使用jQuery。 –

+1

這並不回答這個問題,但澄清......'window.XMLHttpRequest.DONE'是一個只讀常量*(不是數量)*家族之一,每個代表一個XHR實例的可能狀態之一 - UNSENT:0;創立時間:1; HEADERS_RECEIVED:2; LOADING:3;完成:4。不太清楚這是指定的地方(W3C?IANA?),但它很常見(IE,Chrome,Opera),可能是通用的。 –

回答

0

我用這個結束了。如果window.ajax_active == 4,那麼我知道ajax請求已經完成。似乎爲我工作到目前爲止。

window.ajax_active = 0; 

(function(open) { 
    return XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { 
    this.addEventListener('readystatechange', (function() { 
    if (this.readyState == 1) { 
     window.ajax_active += 1; 
    } else if (this.readyState == 4){ 
     window.ajax_active -= 1; 
    } 
    }), false); 
    return open.call(this, method, url, async, user, pass); 
    }; 
})(XMLHttpRequest.prototype.open); 
+0

不知道如何使用它,當我調用'window.ajax_active'時,它給出了賦值 –

+0

jQuery.active也給出了賦值。你想做什麼? –

+0

如果我們設置'window.ajax_active = 0; '它將返回0,但'jQuery.active'返回活動的Ajax請求。 –