我的服務器每晚在午夜運行一些數據庫維護腳本。爲了防止最終用戶的干擾,所有會話在執行前幾分鐘終止。爲了讓用戶在做重要事情時不被粗暴地中斷,倒數計時器顯示剩餘時間。這是通過將預處理期間的服務器時間(php)導出到JS變量並在簡單的循環顯示例程中循環縮短秒數來完成的。按下後退按鈕後刷新JS coutndown定時器?
然而,如果用戶通過按下後退按鈕導航到頁面,顯示的時間將不同步,但大部分時間都按預期工作。有沒有一種方法可以確保腳本在每次查看頁面時都獲取最新的服務器時間,即使在按下後退按鈕後查看該時間?
這很簡單...
var seconds = <?php echo $time_left; ?>;
function display_timer()
{
seconds--;
minutes = parseInt((seconds/60) % 60);
hours = parseInt(seconds/3600);
ds = seconds % 60;
ds = ds > 9 ? ds.toString() : '0' + ds.toString();
dm = minutes > 9 ? minutes.toString() : '0' + minutes.toString();
dh = hours > 9 ? hours.toString() : '0' + hours.toString();
document.getElementById('countdown').innerHTML = 'Time left: ' + dh + ':' + dm + ':' + ds;
if (seconds)
{
setTimeout("display_timer()", 1000);
}
}
display_timer();
似乎它可能是一個緩存問題。你能發佈一些代碼來更好地瞭解發生了什麼嗎? – neolaser 2011-05-17 06:33:12