我的頁面上有一個<div>
,每兩分鐘自動更新一次更新的日誌條目。當我第一次加載我的網頁時,我會調用以下函數。JavaScript:window.setTimeout(),強制提前過期
function getLogs() {
var filter = $('#filter').val();
$.get("index-ajax.asp", { queryType: "getLogs", filter: filter,
uTime: new Date().getTime() },
function(data){
$("#logEntries").html(data);
window.setTimeout("getLogs()",120000);
});
}
我知道上面的代碼可以用window.setInterval(...);
更清潔,但我只是喜歡的window.setTimeout(...);
控制。
我的問題是否可以取消下一個超時執行?如果我更改過濾器,我想取消下一個超時,並立即調用該函數,這將重新計劃超時函數。有沒有更好的方法來實現這一結果?
請注意,上面的代碼是在jQuery中。
注意:Do * NOT *將字符串傳遞給'setTimeout',它使用'eval'!傳遞函數。 'window.setTimeout(getLogs,120000);' –
@RocketHazmat感謝提示字符串。 – dangowans