【发布时间】:2011-05-17 06:27:24
【问题描述】:
我的服务器每晚午夜运行一些数据库维护脚本。为了防止来自最终用户的干扰,所有会话都会在执行前几分钟终止。为了让用户在做重要的事情时不会被粗鲁地打断,倒数计时器会显示剩余时间。这是通过在预处理 (php) 期间将服务器时间导出到 JS 变量并在简单的循环显示例程中循环降低秒数来完成的。
这在大多数情况下都可以正常工作,但是,如果用户通过按后退按钮导航到页面,则显示的时间将不同步。有没有一种方法可以确保每次查看页面时脚本都获取最新的服务器时间,即使在按下后退按钮后查看也是如此?
这很简单...
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();
【问题讨论】:
-
似乎可能是缓存问题。你能发布一些代码来更好地了解发生了什么吗?
标签: php javascript