我已经创建了一个用户在等待其他应用程序重新启动时查看的html页面。我创建了一个JavaScript脚本,它向应用程序发出多个请求,直到应用程序返回200.但是,当我尝试打开我的html页面时,浏览器崩溃。任何人都可以看到我的代码有什么问题:使用Javascript向服务器发送多个请求,直到服务器返回200
var responseStatus = 404;
var numberOfTries = 0;
var request = new XMLHttpRequest();
while(responseStatus != 200){
console.log("Checking if restart has completed. Attempt number: " + numberOfTries);
request.open('GET', 'applicationurl', true);
request.onreadystatechange = function(){
if (request.readyState === 4){
console.log("Request Status: " + request.status);
responseStatus = request.status;
console.log("Response Status: " + request.status);
if (request.status != 200) {
numberOfTries++;
console.log("Restart has not yet completed! NumberOfTries: " + numberOfTries);
}
}
};
request.send();
}
console.log("Server has successfully restarted");
放来延迟在你的代码中使用的setTimeout方法, 你不断打服务器,而这就是为什么你的浏览器简单地crashe。 – Veer
控制台在第一次日志之后不记录任何内容。浏览器冻结,我需要强制退出并重新打开浏览器再次访问html页面。 – rurounisuikoden
@rurounisergii再次,这是因为你在一个循环中这样做。实际上,如果不是成千上万的请求,您将实际发送数百个请求,直到成功。即使这样,即使你获得了200回,你也可能事先发送数百个数据,因为你不会等待它们返回并且它们都是异步发送的。 – vlaz