我的服务器每晚在午夜运行一些数据库维护脚本。为了防止最终用户的干扰,所有会话在执行前几分钟终止。为了让用户在做重要事情时不被粗暴地中断,倒数计时器显示剩余时间。这是通过将预处理期间的服务器时间(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