如何解决是否可以发送http请求直到它通过
我正在尝试向我的服务器发送 HTTP 请求,直到请求通过。我当前的实现每秒发送太多请求,这会导致浏览器滞后。我试图每 2 秒发出一次请求。我的代码有问题还是我的实现有问题?
如果有更好的方法(除了多次发送请求),请随意填写
const GetWeightXML = () => {
var xmlhttp = new XMLHttpRequest();
var interval_1;
xmlhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
if (inverval_1 != null) {
clearInterval(interval_1);
}
var interval = setInterval(GetWeightXML_Recieved(this,interval),1000);
}
else if (this.status == 404) {
interval_1 = setInterval(GetWeightXML,2000);
}
}
let request_url = `${window.location.protocol}//${window.location.hostname}:${window.location.port}/Temp/weight.xml`;
xmlhttp.open("GET",request_url,true);
xmlhttp.send();
}
function GetWeightXML_Recieved(xml,interval) {
var xmlDoc = xml.responseXML;
let finished = xmlDoc.getElementsByTagName('Finished').childNodes[0].nodeValue;
if (finished == null || finished == "") {
return;
}
if (finished == "true") {
clearInterval(inverval);
return;
}
let currWeight = document.getElementsByClassName('current-weight')[0];
let timeElapsed = document.getElementsByClassName('time-elapsed')[0];
currWeight.innerText = "Current Weight: " + xmlDoc.getElementsByTagName('Weight').childNodes[0].nodeValue;
timeElapsed.innerText = "Time Elapsed: " + xmlDoc.getElementsByTagName('Time').childNodes[0].nodeValue;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。