2017-09-04 167 views
-1

以下腳本用於倒數計時器,但頁面上的刷新從頭開始。任何人都可以向我推薦相同的解決方案嗎? 我改變了一切,但失敗了,誰能告訴我該怎麼辦?倒計時不能正常工作

function getTimeRemaining(endtime) { 
    var t = Date.parse(endtime) - Date.parse(new Date()); 
    var seconds = Math.floor((t/1000) % 60); 
    var minutes = Math.floor((t/1000/60) % 60); 
    var hours = Math.floor((t/(1000 * 60 * 60)) % 24); 
    var days = Math.floor(t/(1000 * 60 * 60 * 24)); 

    return { 
     'total': t, 
     'days': days, 
     'hours': hours, 
     'minutes': minutes, 
     'seconds': seconds 
    }; 
} 

function initializeClock(id, endtime) { 
    var clock = document.getElementById(id); 
    var daysSpan = clock.querySelector('.days'); 
    var hoursSpan = clock.querySelector('.hours'); 
    var minutesSpan = clock.querySelector('.minutes'); 
    var secondsSpan = clock.querySelector('.seconds'); 

    function updateClock() { 
     var t = getTimeRemaining(endtime); 

     daysSpan.innerHTML = t.days; 
     hoursSpan.innerHTML = ('0' + t.hours).slice(-2); 
     minutesSpan.innerHTML = ('0' + t.minutes).slice(-2); 
     secondsSpan.innerHTML = ('0' + t.seconds).slice(-2); 

     if (t.total <= 0) { 
      clearInterval(timeinterval); 
     } 
    } 

    updateClock(); 
    var timeinterval = setInterval(updateClock, 1000); 
} 

var deadline = new Date(Date.parse(new Date()) + 30 * 24 * 60 * 60 * 1000); 
initializeClock('clockdiv', deadline); 
+0

使用localStorage的,如果你想存儲的經過時間 – Lalit

+0

使用window.localStorage.setItem(「密押」,「保存定時器的值」);並存儲計時器值並獲取頁面加載的值以從中啓動。 window.localStorage.getItem('testKey') –

+0

請有人幫我用代碼 – BRAHMA

回答

0

您不在用戶的瀏覽器中存儲任何數據,因此在頁面刷新後所有內容都會被清除。爲了擺脫這個問題,你可以做幾件事情:

  1. 使用本地存儲 - >您可以在這裏儲存的東西作爲一個字符串,這將是最好的,而不是更簡單的方法來做到這一點(?) 。

  2. 使用cookies - >同上

  3. 會話存儲 - >這可能不是在所有瀏覽器正常工作。

  4. 將數據保存在某種數據庫中。這將是最難實施,但將允許您更容易地擴展定時器的功能在未來。

+0

請你說明我的確切代碼,我是這個新手。 – BRAHMA

+0

@BRAHMA多麼好的學習新東西的機會! – Teemu