刷新JS代码以在屏幕上显示正确的数据

时间:2013-03-27 10:19:51

标签: javascript jquery

我正在使用下面的脚本从给定时间开始倒计时,并在脚本上实时显示剩余的小时数+分钟+秒数。

完全正确地倒计时但是我遇到的问题是,当在浏览器上使用下一个之前的按钮时,时间不会刷新,我看到了过去的时光。它要么显示上一次或更晚。

我知道浏览器上的下一个之前的按钮不会刷新页面,但我该如何解决这个问题呢?

JS

function timeout_warning(login_timeout)
{
    var counter = 0;
    var total_seconds = 0;
    var colour = '';
    var interval_id = '';

    interval_id = setInterval(function ()
    {
        counter++;

        total_seconds = login_timeout - counter;
        hours = parseInt(total_seconds / 3600 ) % 24;
        minutes = parseInt(total_seconds / 60 ) % 60;
        seconds = parseInt(total_seconds % 60, 10);

        remaining = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds  < 10 ? "0" + seconds : seconds);

        if (minutes == 0 && seconds == 0)
        {
            document.getElementById('font_timeout').innerHTML = 'Timeout';
            window.clearInterval(interval_id);
        }
        else
        {
            document.getElementById('font_timeout').innerHTML = remaining + 'sec';
        }
    }, 1000);
}

HTML BODY

<body onload="timeout_warning('1800')">

2 个答案:

答案 0 :(得分:0)

如果没有实例,我只能对解决方案发表意见。您可能希望我们使用JavaScript从Cookie中加载剩余时间,以便在单击浏览器箭头时,代码将从Cookie中抽取时间,而不是从缓存的数据中抽取时间。

答案 1 :(得分:0)

A solution has already been posted on this并使用表单在页面中存储数据,以查看用户是否按下了后退按钮。它设置了一些表单数据,如果页面返回,它可以判断数据是否已经设置,如果是,则需要强制重新加载(这样你的计时器才会重新启动)。