我已經創建了一個用戶在等待其他應用程序重新啓動時查看的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