2013-08-30 41 views
0

我有以下的測試代碼:阿賈克斯的setInterval導致瀏覽器無響應

<!doctype html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<title>Ajax - one variable test</title> 
<style> 
    body{ font-size: 12px; font-family: Arial;} 
</style> 

<script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
</head> 
<body> 

<ol id="variable1"><var1></ol> 

<script> 
setInterval(function() 
{ 
    $("#variable1").load("ajax_v00.html") 
},3000); 
</script> 


</body> 
</html> 

我使用一個嵌入式Web服務器,報告一個狀態VAR1。

例如:正常或擡頭

上述崩潰我測試在任何瀏覽器。有人可以看看我是否在做點什麼 錯?

謝謝。

+1

是的,你要發送的setInterval的Ajax請求。這是錯誤的,因爲你不知道ajax請求需要多長時間才能完成。它可能需要1ms,或者可能需要15秒。 –

+0

爲什麼只是調用ajax,或者你可以使用回調函數。 http://api.jquery.com/load/ – ronnyfm

+0

如何實現回調函數/ Ajax?如果我放置回調函數,它會報告該請求嗎? –

回答

1

可能需要3秒以上來執行這樣堆疊的請求,直到瀏覽器無法處理所有和崩潰......而不是使用的時間間隔,你應該使用超時將執行請求後的3秒請求最後一個完成。在這裏:

<!doctype html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<title>Ajax - one variable test</title> 
<style> 
    body{ font-size: 12px; font-family: Arial;} 
</style> 

<script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
</head> 
<body> 

<ol id="variable1"><var1></ol> 

<script> 
function doRefresh() 
{ 
    $.ajax({ 
    url:"ajax_v00.html", 
    success:function(data){ 
     $("#variable1").html(data); 
     setTimeout(doRefresh,3000); 
    } 
    }); 
} 
setTimeout(doRefresh,3000); 
</script> 


</body> 
</html> 
+0

以上在Dreamweaver中給我一個語法錯誤?什麼是數據?數據var1? –

+0

好吧,我發現語法錯誤。 –

+0

setTimeout(doRefresh,3000); }}); –