我有2頁,主頁和編輯頁面。即使在更改頁面後,setTimeout是否繼續?
我使用了一個功能,它會在一定時間的不活動之後自動註銷用戶。
該功能僅用於主頁而不是編輯頁面。
以下是功能碼。
// Set timeout variables.
var timoutWarning = 10000;
var timoutNow = 30000;
var warningTimer;
var timeoutTimer;
// Start timers.
function StartTimers() {
console.log("Start TImer");
warningTimer = setTimeout("IdleWarning()", timoutWarning);
timeoutTimer = setTimeout("SignOut()", timoutNow);
$("#timeout").dialog({
autoOpen: false
});
}
// Reset timers.
function ResetTimers() {
clearTimeout(warningTimer);
clearTimeout(timeoutTimer);
StartTimers();
$("#timeout").dialog("close")
console.log("Reset TImer");
}
// Show idle timeout warning dialog.
function IdleWarning() {
$("#timeout").dialog({
autoOpen: true,
modal: true
});
}
我叫了在主頁頁面中的功能通過使用
<body onload="StartTimers();" onmousemove="ResetTimers();">
<div id="timeout">
<h1>
Session About To Timeout</h1>
<p>
You will be automatically logged out in a while<br />
To remain logged in move your mouse
</div>
定時器工作在首頁頁面完全正常,但之後,我切換到編輯頁面(無功能基本上是一個空白頁),我仍然可以在不移動鼠標的情況下自動註銷。
這是否意味着即使切換頁面後,該功能仍在運行?如果是這樣,在我切換頁面後,有什麼可以做的以停止計時器?
ps我嘗試過在函數中添加並在編輯頁面中調用它,但是,即使在繼續移動我的鼠標之後,我仍然會註銷,這就是爲什麼我假設該函數在切換後仍然運行頁。
已解決:現在工作正常後,我重新啓動我的瀏覽器。我相信我可能在某個地方搞砸了。我向那些把時間花在這個問題上的人道歉。根據下面的評論/回答,我的問題的答案是NO。 setTimeout在更改頁面後不會繼續。
當頁面關閉時,所有東西都會隨着頁面而死,包括超時。當您從主頁切換到編輯時會發生什麼?刷新是否發生,還是更像是單頁面應用程序?您是否100%肯定您沒有在編輯頁面上設置超時? –
基本上它的.../home.html,當我點擊某些東西時,它會帶我到.../edit.html(我不確定刷新是否會發生)。我將函數存儲在timer.js中,所以我相信如果我在編輯頁面中設置了超時時間,我會在編輯頁面中添加,因爲我沒有 – user7793635
那麼究竟該如何從/home.html過渡到/edit.html會發生嗎?你可以分享一些代碼嗎? –