[解決済み] Chrome:バックグラウンドのタブでタイムアウト/インターバルが中断?
質問
の精度をテストしていました。
setTimeout
を使って
このテスト
. 今、私は(予想通り)次のことに気づきました。
setTimeout
はあまり正確ではありませんが、ほとんどの家電製品では劇的に不正確というわけではありません。今、私がChromeでテストを実行し、バックグラウンドのタブで実行させ(そう、別のタブに切り替えてそこでブラウズする)、テストに戻り、結果を検査すると(テストが終了した場合)、それらは劇的に変化しています。タイムアウトの実行がかなり遅くなったような気がします。FF4やIE9でテストしたところ、このようなことは起こりませんでした。
つまり、Chrome はフォーカスのないタブで javascript の実行を一時停止するか、少なくとも遅くしているようです。この件に関しては、インターネットで調べてもあまり出てきません。例えば、XHRコールを使ってサーバー上で定期的にチェックするようなバックグラウンドタスクが実行できないことになります。
setInterval
(私は、同じ動作を
setInterval
時間があれば、テストを書いてみます。)
どなたかこのようなことに遭遇された方はいらっしゃいますか?この停止/減速の回避策はあるのでしょうか?これはバグと呼ばれるもので、そのように報告すべきでしょうか?
解決方法は?
最近質問したのですが、これはデザインによる動作です。タブが非アクティブのとき、最大で1秒に1回だけこの関数が呼ばれます。以下がその例です。 コード変更 .
もしかしたら、これが役に立つかもしれません。 Chrome でタブが非アクティブのときにも setInterval を動作させるにはどうしたらいいですか?
TL;DR: 使用 ウェブワーカー .
関連
-
vueネットワークリクエストソリューション ネイティブネットワークリクエストとjsネットワークリクエストライブラリ
-
JavaScriptのクロージャの説明
-
[解決済み] ChromeでCSSカスタムスタイルのボタンから青枠を削除する
-
[解決済み] Chromeの同一生成元ポリシーを無効にする
-
[解決済み] ウェブサイト制作のためのChromeキャッシュの無効化
-
[解決済み] Firefox または Chrome ブラウザから HTTP POST リクエストを手動で送信する方法
-
[解決済み] Chromeを使用してASP.NET Web APIがXMLの代わりにJSONを返すようにするにはどうすればよいですか?
-
[解決済み] タブの代わりにスペースを使うようにEclipseを変更するにはどうしたらいいですか?
-
[解決済み] Chromeのオートコンプリートで入力の背景色を削除する?
-
[解決済み】自己署名付きlocalhost証明書をChromeが受け入れるようにする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
fetch ネットワークリクエストラッパーの説明例
-
Vueの要素ツリーコントロールに破線を追加する説明
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
vue ディレクティブ v-html と v-text
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】awaitは非同期関数でのみ有効です。
-
[解決済み】ERROR エラーです。スイッチのname属性が指定されていないフォームコントロールの値アクセッサがない
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)
-
[解決済み】Chromeでタブが非アクティブのときにもsetIntervalを動作させるにはどうすればいいですか?