如何停止通过$ .get发送的jquery ajax请求?
一旦用户在输入框中键入一个字符,我想使用$ .get制作一个ajax请求我想中止之前的ajax调用然后再创建一个新的,有办法吗?
编辑
解决了!
我刚刚发现$ .get是$ .ajax的简写方式,因此它返回一个XHR,因此我们可以在该变量上调用abort。
您可以在$.get
返回的XMLHttpRequest上使用.abort()
。
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请求。