1

window.setTimeout()の遅延が無視またはランダム化されているように見える問題が発生しています。

function timer() {
    var refreshTimer = 0;

    var delay = 300000; // 5 min

    this.init = function () {
        this.startRefreshTimer();
        $(document)
            .ajaxStop(this.startRefreshTimer)
            .ajaxStart(this.stopRefreshTimer)
        ;
    };

    this.startRefreshTimer = function() {
        refreshTimer = window.setTimeout(resetTimer, delay - 10000);
    };

    this.stopRefreshTimer = function() {
        window.clearTimeout(refreshTimer);
    };

    function resetTimer() {
        $.ajax(url);
    }

    this.init();
}

これはランダムな時間セットで (複数のブラウザーやタブでも) 機能しますが、しばらくすると遅延が発生します。

リクエスト時間のログもここにあります:

17:50:04
17:54:55 // + 5 min - ~10 sec
17:59:46 // ||
18:04:37 // ||
18:09:28 // ||
18:14:19 // ||
18:19:10 // ||
18:24:01 // ||
18:28:52 // ||
18:33:43 // ||
18:38:34 // ||
18:43:25 // ||
18:48:16 // ||
18:53:07 // ||
18:57:58 // ||
19:15:09 // + ~ 17 min ???

私は使用できずwindow.setInterval()、このコードの目的についてこれ以上の情報は提供しません。誰かが同様の経験をしたかどうか、および/またはこの問題の解決策を知っているかどうかを知りたいだけです.

4

0 に答える 0