取消前一个 jQuery Ajax 请求
以下是使用定时器每秒钟请求服务器,并在后一个请求的响应比前一个请求的响应先到达客户端时抛弃前一个请求的响应的代码:
(以 $.post 为例,$.ajax 同理)
let previousXHR = null; // 存储前一个请求的 jqXHR 对象
function sendRequest() {
// 取消前一个请求
if (previousXHR) {
previousXHR.abort();
}
// 发送新的请求
const currentXHR = $.post(url, data, function(response) {
// 请求成功的回调函数
console.log(response);
});
// 更新前一个请求的 jqXHR 对象
previousXHR = currentXHR;
}
// 每秒钟发送请求
setInterval(sendRequest, 1000);
如果你用 axios,请参此文。
可能相关的内容