gpt4 book ai didi

javascript - 仅在收到该请求的响应后,我如何才能继续循环其中包含 XMLHttpRequest 的 JavaScript 函数

转载 作者:行者123 更新时间:2023-11-29 20:54:54 25 4
gpt4 key购买 nike

我的要求是在收到现有 xhr 请求的响应后循环(继续重新调用)请求。我目前正在设置 2 秒的超时。但我仍然不确定这是否有效。我不想要严格的超时,因为请求有时可能需要一段时间,这没关系(因为它有一个数据库调用)。那么有什么建议可以让我在收到回复后再次调用该函数吗?

   var request = (window.XMLHttpRequest) ? new XMLHttpRequest() : (window.ActiveXObject ? new window.ActiveXObject("Microsoft.XMLHTTP") : false);

function htmlGen (log){
var data_count = someNumber;
var url = someURL;
request.open("GET", url, true);
request.timeout = 2000;
request.onreadystatechange = updatePage; //some function to update my page
request.send(null);
}
function timerCntrl(command,log) {
if (command == "start") {
document.getElementById("start").disabled = true;
document.getElementById("stop").disabled = false;
timer = setInterval(function() { htmlGen(log);}, 2000);
}else{
document.getElementById("watchStart").disabled = false;
document.getElementById("watchStop").disabled = true;
clearTimeout(timer);
}
}

提前致谢:)

最佳答案

这段代码应该可以工作。它发出请求,然后等待响应。一旦响应到达,它就会发出另一个请求,然后等待它的响应……等等……

var request = (window.XMLHttpRequest) ? new XMLHttpRequest() : (window.ActiveXObject ? new window.ActiveXObject("Microsoft.XMLHTTP") : false);
var url;
function updatePage();

async function startRequests() {
while(true) {
request.open("GET", url, false);
request.onreadystatechange = updatePage; //some function to update my page
request.send(null);
}
}

请注意,出于某种原因,这些没有记录在控制台上(女巫足够有趣让我不得不处理 SO 中的“太多请求”错误)。还有,这真的不是什么好事。这更像是 DDoS 而不是实际的 HTTP 请求。使用这个要小心。

关于javascript - 仅在收到该请求的响应后,我如何才能继续循环其中包含 XMLHttpRequest 的 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49803490/

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