2016-01-09 23 views
1

我們可以創建XMLHttpRequest對象,然後可以在以後使用它像另一個要求: -如何獲取jQuery中的XMLHttpRequest對象,以後可以用於其他請求?

var xhr = new XMLHttpRequest(); 
xhr.open("GET", url, true); 
xhr.onreadystatechange = function(){ } // something 
xhr.send(null); 

將會有一個搜索框,當我們在它進入的東西,它會發送一個Ajax請求,但如果用戶進入更多,所以我們將取消先前的ajax請求並創建新的。

如果我們想通過同一對象發送另一個ajax請求,我們可以爲該搜索框創建一個xhr對象,以確保每次只有一個ajax請求,所以如果我們需要發送另一個請求,將會做這樣的: -

xhr.abort() 
xhr.open() 
xhr.send(null); 

我使用jQuery的跨瀏覽器的便攜性,我想類似上述的東西,這意味着一個XHR(或包裝XHR)對象,可以再次重複使用和可及也取消以前的請求。

我們如何在jQuery中做到這一點?

回答

1

嘗試使用函數返回$.get().abort()

var current; 
var request = function(url) {current = $.get(url); return current}; 
request(url); current.abort(); 
request(url).then(function(data) { 
    // do stuff 
}, function err(jqxhr, textStatus, errorThrown) { 
    // do stuff with error 
}); 
+0

我們也可以把請求功能current.abort()爲好,?所以要創建新的請求,我們會這樣做:current.abort(),current = $ .get ...?對 ? – Tiger

+0

@Tiger _「所以創建新的請求,我們會這樣做:current.abort(),current = $ .get ...?right?」_不一定正確解釋?是的,可以將'current'重定義爲'$ .get(url)' – guest271314

相關問題