计数器需要坚持记住最后一个数字

时间:2016-02-15 19:20:07

标签: javascript counter persist

我找到了这个小提琴: https://jsfiddle.net/DinoMyte/sac63azn/3/

https://fiddle.jshell.net/DinoMyte/sac63azn/3/show/

var num = 10000000;

setInterval(function()
  {   
    num++;
    console.log(num);
    $('div').text(num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
  },6000);

它几乎按照我想要的方式工作。它是一个计数器,每6秒钟,它会在数字上加1。例如:数字从10,000,000开始,然后每6秒开始,它会在数字上加1。问题是当用户刷新或重新加载页面时,该数字将恢复为原始的10,000,000。如果刷新或重新加载后,是否可以从上次保存号码?坚持?例如:数字现在是10,000,008,6秒后它是10,000,009,然后用户点击或刷新或重新加载页面,它应该记住最后一个数字的位置:10,000,009并从那里开始计数。

2 个答案:

答案 0 :(得分:1)

您可以使用localStorage

只需使用此代码

var num = localStorage.getItem('evaluatedTimer') || 10000000;

setInterval(function()
  {   
    num++;
    console.log(num);
    var currentTimer = num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    localStorage.setItem('evaluatedTimer', currentTimer');
    $('div').text(currentTimer );
  },6000);

答案 1 :(得分:0)

您可以将var num值设置为javascript cookie。您可以使用以下javascript代码来创建,读取或删除cookie val

AnyObject

因此,在您的情况下,您可以像这样持有num值

var num = 10000000;

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}