gpt4 book ai didi

ajax - 如何取消/中止 jQuery AJAX 请求?

转载 作者:IT王子 更新时间:2023-10-29 03:23:48 26 4
gpt4 key购买 nike

我有一个 AJAX 请求,每 5 秒发出一次。但问题是在 AJAX 请求之前,如果之前的请求没有完成,我必须中止该请求并发出新请求。

我的代码是这样的,如何解决这个问题?

$(document).ready(
var fn = function(){
$.ajax({
url: 'ajax/progress.ftl',
success: function(data) {
//do something
}
});
};

var interval = setInterval(fn, 500);
);

最佳答案

jquery ajax 方法返回一个 XMLHttpRequest目的。您可以使用此对象取消请求。

XMLHttpRequest 有一个 abort方法,它会取消请求,但如果请求已经发送到服务器,那么即使我们中止请求,服务器也会处理请求,但客户端不会等待/处理响应。

xhr 对象还包含一个 readyState其中包含请求的状态(UNSENT-0、OPENED-1、HEADERS_RECEIVED-2、LOADING-3 和 DONE-4)。我们可以使用它来检查之前的请求是否已完成。

$(document).ready(
var xhr;

var fn = function(){
if(xhr && xhr.readyState != 4){
xhr.abort();
}
xhr = $.ajax({
url: 'ajax/progress.ftl',
success: function(data) {
//do something
}
});
};

var interval = setInterval(fn, 500);
);

关于ajax - 如何取消/中止 jQuery AJAX 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4551175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com