一旦用户在输入框中键入字符,我就会使用$ .get发出ajax请求 我想中止之前的ajax调用,然后制作新的调用,是否有办法?
修改
解决!
我刚刚发现$ .get是$ .ajax的简写方式,因此它返回一个XHR,因此我们可以在该变量上调用abort。
答案 0 :(得分:27)
您可以在.abort()
返回的XMLHttpRequest上使用$.get
。
var req = $.get('ajax/test.html', function(data) {
$('.result').html(data);
alert('Load was performed.');
});
//Abort request
req.abort()
来自jQuery.ajax()文档:
$ .ajax()函数返回它创建的XMLHttpRequest对象。通常,jQuery在内部处理此对象的创建,但可以使用xhr选项指定用于制造该对象的自定义函数。返回的对象通常可以被丢弃,但确实提供了一个用于观察和操作请求的低级接口。特别是,在对象上调用.abort()将在请求完成之前暂停该请求。
有关.abort()
的更多信息:XMLHttpRequest.abort()
还有jQuery插件AjaxQueue用于处理并行发出的多个Ajax请求。