我想運行一個JavaScript,將頁面的背景顏色設置爲紅色,等待秒,然後從網頁獲取一個值,然後變綠,然後保持綠色幾秒鐘後再次變紅並無限期重複。使用setTimeout時防止在循環內重複GET
我正在使用JQuery GET來獲取網頁。
我的代碼
<script>
function g() {
document.body.bgColor = 'green';
}
function r() {
document.body.bgColor = 'red';
}
$(document).ready(function(){
while(1)
{
$.get("http://localhost:8080/t.html", function(data){
setTimeout'g()',10000);
setTimeout('r()',data*1000);
});
}
});
</script>
問題:不知何故,seTimeout導致循環繼續。到頁面等待幾秒鐘時,會生成數百個GET請求。當代碼正在等待給定的時間時,我需要完整的過程來凍結。 我的瀏覽器正在檢測這個連續的循環,由於繁重的活動並要求殺死它。
請幫我解決這個問題。
歡迎** **異步的奇妙世界!你不能那樣做。你需要遞歸。 – SLaks
爲什麼使用'while(1)' – Satpal
需要繼續這樣做直到頁面關閉 – BMC