如果你想定期做到這一點,你應該使用setInterval
。
//create the timer (and save the unique id returned
//so we can stop it later if needed, using clearTimer())
//This will fire every 300,000 millisecs (= 5 mins)
//and call the updateMessageCount function
var msgCounTimer = setInterval(updateMessageCount, 300000);
function updateMessageCount() {
$.ajax({
type:'GET',
url:'http://foobar.com/ws',
success:function(messageCount)
{
$('a.message').text(messageCount + ' Messages');
}
});
}
但是,如果你想要做一次使用setTimeout
- 你可以用setTimeout
定期做到這一點,只是你需要撥打電話每次設置定時器。
的一個情況下,我能想到的,你可能想使用setTimeout
代替setInterval
是當你在(下面的示例所示updateMessageCount
)呼籲暫停功能做的工作,需要較長比的超時時間間隔會導致下一次超時(使用setInterval
時)顯示爲瞬時的,因爲定時器將每隔n
秒觸發一次,而不管前一個超時調用的函數是否仍在執行。相反,如果您希望確保在連續調用您的超時處理程序(而不是您的超時處理程序每n
毫秒被調用)之間會有n
毫秒,您應該使用setTimeout
而不是每次完成沉重設置時處理。
注意 我看你使用的是絕對URL中的例子,所以我想我會指出這一點的情況下,你不熟悉它 - 注意其作出限制你的JavaScript的same-origin policy請求發送到的域以外的域。
爲什麼放在$(function(){...});? – Uri 2013-03-23 21:24:05
確保在執行任何代碼之前文檔已準備就緒。在這種情況下可能有點過分,但IMO總是很好的做法。 – 2013-03-25 11:06:00