ライブダッシュボードのポーリングとページ全体のリロード
ポーリングによりデータのスライスが更新されます。ページ全体をリロードすると、サーバーからタブ全体が再構築されます。
ライブ ダッシュボードでは、「このボードを最新の状態に保つ」という 1 つの文に両方のアイデアが混在していることがよくありますが、メカニズムは異なります。 Auto Refresh Turbo は、Chrome アラームと tabs.reload を使用してタブ全体のリロードをスケジュールします。すべてのベンダー ボードにカスタム API ポーラーが同梱されるわけではありません。
ポーリングが通常意味するもの
アプリ コードでは、ポーリングはエンドポイントに新しい行、メトリクス、またはステータス JSON を要求し、DOM にパッチを適用するループです。 URLはそのままです。多くの場合、レイアウト、認証 Cookie、およびクライアント側の状態は存続します。うまく機能すると、スムーズで帯域幅が安く感じられます。
ポーリングは、ページがそのループをすでに公開している場合、またはフロントエンドを制御している場合にのみ機能します。多くの運用ウォール、チケット キュー、ベンダー ステータス ページでは、ブラウザのツールバーからクリーンな公開投票 API が提供されません。
ページ全体のリロードの動作
完全なリロードでは、Chrome にドキュメントを再度フェッチし、スクリプトを再実行するように要求します。勤勉な人間が [更新] を押した後に見るものと同じものが表示されます。ドキュメントが新しいため、古いシェル、スタックしたタイル、半分壊れた SPA キャッシュがクリアされることがよくあります。
トレードオフは明らかです。短いフラッシュ、アセットの再フェッチ (キャッシュが役立つ場合を除く)、ページ内のドラフト状態の喪失です。これが、オプションのクリック/タイプ時の停止機能が存在する理由です。そのため、編集中にリロードが発生することはありません。
リロードが適切なツールの場合
- ボードはパッチを適用できないサードパーティのページです
- ライブ タイルは誰かが手動で更新するまで更新を停止します
- 無関係な多くのサイトにまたがって機能する 1 つの間隔が必要です
- JSON 呼び出しを細かく最適化することよりも、「壁に映しても正しく見える」ことを重視する
そのクラスのジョブについては、ダッシュボードの自動更新もご覧ください。
(アプリ内で)ポーリングが成功した場合
- 製品はすでに正しくストリーミングまたはポーリングを行っています
- 完全にリロードすると、ログアウトされるか、必要なフィルタがリセットされます
- 1 秒未満の更新が重要であり、リロードすると UI がスラッシングされる
ページがすでに公開されている場合は、サイトと戦うよりも、スケジュールされたリロードを延長または削除する方が良いことがよくあります。
Auto Refresh Turbo の適合性
拡張機能のコア ループは Service Worker 内にあります。間隔 (またはランダムな最小値と最大値) を設定し、[開始] を押すと、そのタブのアラーム tabs.reload が起動されます。セッションはタブごとに独立しています。設定はローカルの chrome.storage に残ります。
オプションのページ上ツール (ビジュアル タイマー、インタラクションで停止、疑わしいページのヒューリスティック) は、有効にするとコンテンツ スクリプトを使用します。拡張機能を汎用の XHR ポーラーに変えるわけではありません。
実用的なハイブリッド
多くのチームは、アプリ自体の更新をそのままにして、セーフティ ネットとして低速の完全リロードを追加しています。たとえば、長時間アイドル時間が経過した後にタイルがスタックしているように見える場合は、5 ~ 15 分間のハード リフレッシュを追加します。穏やかに始めてください。必要性が証明された場合にのみ締めてください。
<オル>レート制限と課題
積極的なリロードは、不正なトラフィックのように見える可能性があります。キャプチャやエラーが表示された場合は、作業をやめてください。脆弱なエンドポイントで 1 分未満の間隔でプッシュする前に、レート制限と時間指定リロードをお読みください。
試してみる
Auto Refresh Turbo をインストールし、約 2 分以内に開始します。