簡體   English   中英

流星setinterval太快了

[英]Meteor setinterval too fast

我的應用程序中有多個倒計時器,我正在使用setInterval函數更新這些值。 遵循代碼塊的想法是循環所有正在進行的游戲並更新倒計時時鍾。 我有1000毫秒的間隔,但它比這更快地循環。 為什么? 當我打開多個瀏覽器窗口以查看倒數計時器更新時,我可以注意到間隔是500毫秒。

if (Meteor.isClient) {

    Meteor.setInterval(
        function() {

            var going = Games.find({isGoing: true});
            var goingFetch = going.fetch();
            var goingCount = going.count();

            for (i = 0; i < goingCount; i++) {
                Games.update(goingFetch[i]._id, {$set: {timeLeft: goingFetch[i].timeLeft - 1}});
            }               
        }
    , 1000 );
}

有沒有更好的方法來解決這個問題? 我可能同時擁有100個游戲,每個游戲都有一個到多個計時器。 定時器類型可以是倒計時或增量,所有定時器都可以停止。 間隔總是並且在所有情況下都是1000毫秒。

更新我做了更多測試,setInterval工作正常,但客戶端仍然有太快的倒計時器。

你確定你的代碼沒有被錯誤執行兩次嗎? 例如, goingCount是否goingCount產生正確的結果? setInterval不如setTimeout准確,但它不應該在1000ms時引起問題。 我們能看到更多你的代碼嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM