Chrome 拡張機能の永続的なサービス ワーカー
Chrome 拡張機能のサービス ワーカー (SW) は本質的に永続的ではありません。つまり、一定期間後にブラウザによって強制的に終了される可能性があります。非活動性の。これは、ネットワーク リクエストの傍受と変更を SW に依存している拡張機能にとって、特にリクエストに時間がかかる場合、またはリクエストが完了する前にユーザーがページから移動した場合に問題となる可能性があります。
回避策
Chrome で SW を永続的に実行し続けるために利用できる回避策がいくつかあります拡張機能:
-
バグエクスプロイト (Chrome 110 ): 非同期 Chrome API 関数を呼び出して、ワーカーをさらに 30 秒間アクティブに保ちます。このエクスプロイトは Chromium チームによって機能として認められており、当面は継続される予定です。
-
オフスクリーン API (Chrome 109 ): オフスクリーン ドキュメントを作成し、そこから SW へのメッセージは 30 秒以内に送信されます。この手法は、Chrome の最近のバージョンではオフスクリーン ドキュメントの有効期間が無制限であるという事実を利用しています。
-
NativeMessaging API (Chrome 105 ): Chrome を使用して SW をネイティブ ホスト プロセスに接続します。 .runtime.connectNative 関数。接続が維持されている限り、SW はアクティブなままになります。
-
WebSocket API (Chrome 116 ): WebSocket 接続を確立し、アクティブな状態を維持するには 25 秒以内にメッセージを交換します。
-
Chrome Messaging API: メッセージを送り返して拡張機能の別のタブに ping を送信します
-
専用タブ: SW を使用する代わりに、表示される背景ページとして機能する拡張ページを備えた専用タブを開きます。このページは、リクエストをインターセプトし、拡張機能の状態を維持するために使用できます。
注意
これらの回避策は、必要な場合にのみ慎重に使用することが重要です。永続的な SW はメモリとリソースを消費する可能性があるため、使用しないときは無効にする必要があります。さらに、拡張機能の状態をストレージに保存して復元することは、クラッシュから保護するために非常に重要です。
以上がChrome 拡張機能で Service Worker を永続的に維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。