[英]Continue time when page refreshes - javascript
我遇到了這個問題,我不知道是否有辦法即使刷新頁面也可以繼續倒數計時,或者如果刷新頁面,則會出現一個警告框,提示“您確定要離開頁面嗎?” 如果可以,它將重定向到另一個頁面?
這是我倒計時的ajax腳本
<script type="text/javascript">
window.onload = function()
{
countDown('timeLimit', 'sample.html', 60);
}
function countDown(elID, output, seconds)
{
var elem = document.getElementById(elID),
start = new Date().getTime(), end = start+seconds*1000,
timer = setInterval(function() {
var now = new Date().getTime(), timeleft = end-now, timeparts;
if( timeleft < 0) {
document.location.href = output;
clearInterval(timer);
}
else {
timeparts = [Math.floor(timeleft/60000),Math.floor(timeleft/1000)%60];
if( timeparts[1] < 10) timeparts[1] = "0"+timeparts[1];
elem.innerHTML = "Time left: "+timeparts[0]+":"+timeparts[1];
}
} ,250); // the lower this number, the more accurate the timer. 250 recommended
}
</script>
刷新頁面后,如何繼續該時間甚至刷新頁面?
請help..im是javascript的新功能。
簡短答案...不。 您可以在刷新之前發送時間2服務器,但這是不可靠的(如果我按ctrl + alt + del並殺死瀏覽器進程怎么辦)?
這需要使用cookie或某種服務器端腳本。 您可以使用cookie來存儲計數器值,並且在頁面加載/刷新后,它應該檢查cookie是否存在。 如果是這樣,那么您將希望加載該值並使計數器從該值恢復。
使用服務器端腳本可以應用相同的核心概念。 無論是將該值存儲在數據庫中,還是使用套接字在實時腳本中維護該值。
如果您不需要將頁面哈希用於其他目的,而只是在自己的網站中導航,則可以將計時器的時間放入window.location.hash
如果您只是重新加載頁面或將其放入url中)您正在導航至myurl.com/somepage.html#yourtime
。 請記住,如果您正在使用需要此值的庫,正在異地鏈接或僅使用錨,則此方法將無效。
有關如何操作此值,請參見在jQuery中更改哈希而不重新加載 。
您需要記住的是,Javascript中沒有“狀態”,因此任何頁面刷新都將導致您的所有腳本完全重新加載。 這樣一來,您就可以將持久性值“存儲”在cookie,localstorage(html5,在瀏覽器中不一致實現)或服務器上(您需要一種方法來識別用戶,例如登錄名)或瀏覽器會話以使其正常工作)。
此外,如果您選擇使用這些方法中的任何一種,請記住也要存儲當前時間。 否則,用戶返回頁面后,將沒有上下文繼續計數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.