我们可以创建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中做到这一点?
答案 0 :(得分: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
});