2016-02-15 21 views
0

我發現這個小提琴: 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。如果在刷新或重新加載之後,是否有可能從上次保存號碼?堅持?例如:現在的數字是10000,008,6秒後它是10,000,009,然後用戶點擊或刷新或重新加載頁面,它應該記住最後一個數字的剩餘位置:10,000,009並從那裏開始計數。

+2

它寫入一個cookie。當你重新加載時,首先查看cookie是否存在,並設置'num'而不是10000000 –

+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); 
+0

我很抱歉傢伙事先。我沒有完成代碼檢查,因此在實施時可能需要再次運行一次。 – Bikas

+0

我試過你的代碼。它沒有工作。我做對了嗎? http://test06.bycustomdesign.com/03.html – user2343800

+0

明白了。謝謝。 – user2343800

0

您可以將var的值設置爲javascript cookie。您可以使用JavaScript代碼下面的創建,讀取或刪除cookie的VAL

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); 
} 

所以,你的情況,你可以堅持這樣

VAR NUM = NUM​​千萬價值;

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

我試過你的代碼,它沒有工作。我錯過了什麼? http://test06.bycustomdesign.com/04.html – user2343800

+0

它應該工作,因爲我以前測試過。可能b你缺少類似var num = 100000000的東西; –

相關問題