2015-11-07 30 views
-1

我知道setInterval時間的最大值小於最大32位無符號整數,但這不足以滿足我的情況,我需要setInterval有超過50天的時間,我可以如何完成這樣的任務? 問候,如何使javascript中的setInterval超過50天?

+0

可能有一個計數器正在運行並在49天內設置一個新的間隔? – Danmoreng

+1

您認爲該網頁將會在50天內打開嗎? –

+2

這似乎是一個XY問題。你爲什麼不解釋你爲什麼需要這個? –

回答

1

回答你實際問:你不能。相反,你會比它更頻繁地發生,並有條件邏輯,所以你只能每隔50(或其他)的時間做一些事情。

例如:每75天一次:

var nextEvent = new Date(); 
nextEvent.setDate(nextEvent.getDate() + 75); // JS dates handle month rollover for you 
setInterval(function() { 
    if (new Date() < nextEvent) { 
     return; 
    } 

    // ...do your processing... 

    // Set up for next time 
    nextEvent = new Date(); 
    nextEvent.setDate(nextEvent.getDate() + 75); 

}, 1000 * 60 * 60 * 24); // Once a day 

,我不能保證瀏覽器實際上會持續觸發該間隔計時器接連數日。

+0

然後將某個地方的存儲日期(localStorage或cookie)存儲起來並不是一個更好的方法,請定期刷新頁面以確保更小間隔持續發射,並且只有當'date> = tickerDate-fewMinutes && date <= tickerDate'設置了一個新的,更精確的'setTimeout(tick,tickerDate - now)'? – Kaiido

+0

@Kaiido:存儲在本地存儲是一個好主意,是的;無盡的頁面刷新,不,在我看來。 :-)但實際上,我們需要更多地瞭解實際的基本需求;可能性是整個方法需要重新思考。 –

+0

最後一點是完全同意的。對於定期更新...我不會這樣做,但是在這之間,希望50天的舊版頁仍然運行良好......不知道,如果有一天我必須考慮我的一個項目,我會後退一步,重新考慮爲什麼我需要更好。 – Kaiido

相關問題