1

setIntervalを使用してAJAXで2分ごとに現在のタイムスタンプをデータベースに送信するアプリケーションに取り組んでいます。

しかし、どういうわけかsetIntervalは数分後に停止します(正確な時間を計算しませんでした)が、そのブラウザのタブを20〜30分間開かないと発生すると思います。

function tmstmp() {
$.post("send_functions.php?act=time");
}

$(function() { 
setInterval(tmstmp, 60000);
});

そのタブがフォアグラウンドにない場合、 setInterval が停止するのは正常ですか?

はいの場合、 setInterval が停止しないようにするにはどうすればよいですか? または停止したかどうかを確認しますか?

ありがとう

4

3 に答える 3

0

それは起こらないはずです。ブラウザは実際にタイマーの解像度を約1/sに下げる可能性がありますが、setIntervalをクリアすることはできません。

コードにバグがあり、それが原因clearIntervalでしょうか?

于 2012-04-15T20:21:52.273 に答える
0

コードなし + デバッグ情報なし = 何が問題なのかわかりにくい。

実行されるコード (メソッド) に次の行を追加し、setInterval20 ~ 30 分後にコンソールに出力が表示されるかどうかを確認してください。

console.log('Yep! I am alive!');

編集: POST 要求が実行された後にコールバック関数を含めるようにtmstmpメソッドを変更してみてください。そうすれば、少なくともそれが機能することがわかります。

function tmstmp() {
    $.post("send_functions.php?act=time", function(data){
        console.log('Yep! I am alive!');
    });
}
于 2012-04-15T20:17:01.690 に答える