gpt4 book ai didi

javascript - 中止 XMLHttpRequest 的所有实例

转载 作者:行者123 更新时间:2023-11-30 12:14:07 25 4
gpt4 key购买 nike

我有这行代码以指定的时间间隔(50 毫秒)调用函数 SigWebRefresh

tmr = setInterval(SigWebRefresh, 50);

SigWebRefresh 执行XMLHTTPRequest:

function SigWebRefresh(){   
xhr2 = new XMLHttpRequest();
xhr2.open("GET", baseUri + "SigImage/0", true );
xhr2.responseType = "blob";
xhr2.onload = function (){
var img = new Image();
img.src = getBlobURL(xhr2.response);
img.onload = function (){
Ctx.drawImage(img, 0, 0);
revokeBlobURL( img.src );
img = null;
}
}
xhr2.send(null);
}

我曾使用 clearInterval 清除使用 setInterval() 方法设置的计时器。

 clearInterval(tmr);    

我想中止所有 XMLHttpRequest 但 xhr2.abort(); 只中止请求的一个实例。如何中止所有未完成的 XmlHttpRequest

最佳答案

尝试将每个 xhr2 变量推送到一个数组,利用 Array.prototype.forEach 中止每个存储的 xhr2 变量

var requests = [];

function SigWebRefresh(){
xhr2 = new XMLHttpRequest();
requests.push(xhr2);
xhr2.open("GET", baseUri + "SigImage/0", true );
xhr2.responseType = "blob";
xhr2.onload = function (){
var img = new Image();
img.src = getBlobURL(xhr2.response);
img.onload = function (){
Ctx.drawImage(img, 0, 0);
revokeBlobURL( img.src );
img = null;
}
}
xhr2.send(null);
}

// abort all requests
requests.forEach(function(request) {
request.abort()
})

关于javascript - 中止 XMLHttpRequest 的所有实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32900103/

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