如果一个ajax请求过长,你可能会有取消之前发起的一次请求的需要。这里介绍jquery中如何实现。其实jquery发起一个ajax请求后会返回一个jqXHR对象,你随后可对该对象进行操作,包括abort中断操作。示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var jqXhr = $.ajax({ url: 'some ajax url' , success: function (data) { //do something }, error: function (data,error){ console.log(error); }, complete: function (){ jqXhr = null; } }); setTimeout( function (){ if (jqXhr && jqXhr.readyState!= 4){ jqXhr.about(); } },50); |
取消成功的话,ajax请求参数中的error函数会被触发。console.log(error)一句将打印出“abort”字样。
注意:jquery 1.5之前的版本需要将上述代码中的readyState改成小写的readystate。