计时计时器不会设置错误

时间:2014-02-10 12:05:49

标签: javascript jquery ajax timer count

在刷新时不会重置的倒计时器

var test;
var pageVisisted = new Date();
test = setInterval(function () {
var timeOnSite = new Date() - pageVisisted;

var secondsTotal = timeOnSite / 1000;
var minutes = Math.floor(secondsTotal / 60) % 3600;
var seconds = Math.floor(secondsTotal) % 60;

document.getElementById('counter').innerHTML = minutes + "." + seconds;


}, 1000);

我花了很多时间来设置计时器。但是无法完成它。任何人都知道如何解决这些错误。 例如: 如果我在1.26秒刷新这些页面,倒计时再次开始为0.但是它必须在刷新后以1.26开始。你能解决这个并告诉我如何修复它。

1 个答案:

答案 0 :(得分:0)

您可以将pageVisited值存储在localStorage中(或者更好,我猜在sessionStorage中):

var pageVisited = +localStorage.pageVisited || +new Date();

var test = setInterval(function() {

    var timeOnSite = new Date() - pageVisited;

    var secondsTotal = timeOnSite / 1000;
    var minutes = Math.floor(secondsTotal / 60) % 3600;
    var seconds = Math.floor(secondsTotal) % 60;

    document.getElementById('counter').innerHTML = minutes + "." + seconds;

}, 1000);

if (!localStorage.pageVisited) {
    localStorage.pageVisited = pageVisited;
}

演示:http://jsfiddle.net/HjxLX/

如果您希望在关闭浏览器窗口后清除计时器,请使用sessionStorage

IE支持:IE8 +。