ホームページ >ウェブフロントエンド >jsチュートリアル >Chrome 拡張機能は永続的な Service Worker 機能をどのように実現できますか?

Chrome 拡張機能は永続的な Service Worker 機能をどのように実現できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-11 14:09:15263ブラウズ

How Can Chrome Extensions Achieve Persistent Service Worker Functionality?

Chrome 拡張機能の永続的なサービス ワーカー

Chrome 拡張機能は、特定の Web リクエストをインターセプトして処理するためにサービス ワーカー (SW) を利用します。ただし、SW は本質的に非永続的であり、一定期間非アクティブになった後、または 5 分間の実行後に自動的に終了します。これにより、永続的な接続を維持したり、長時間実行されるタスクを実行する必要がある拡張機能が妨げられる可能性があります。

回避策

その一時的な性質にもかかわらず、SW で永続性を実現するための戦略がいくつかあります。

Chrome 110 のバグエクスプロイト

作成者非同期 Chrome API を一定の間隔 (例: 20 秒ごと) で呼び出すと、SW はさらに 30 秒間アクティビティを保持できます。

Chrome 109 のオフスクリーン API

オフスクリーン API を使用すると、キープアライブ メッセージを 30 秒以内に送信するオフスクリーン ドキュメントを作成して、 SW のアクティビティ。

Chrome 105 の NativeMessaging

SW は、chrome.runtime.connectNative メソッドを介してネイティブ メッセージング ホストへの接続を確立できます。この接続により、ホスト プロセスが実行され続ける限り、SW の寿命が延長されます。

Chrome 116 の WebSocket API

WebSocket メッセージの交換頻度を 30 秒ごとよりも低くすると、接続が維持されます。開いていて SW がアクティブです。

別の ping を実行していますタブ

開いているブラウザ タブに定期的にメッセージを送信することで、SW は接続を維持し、寿命を延ばすことができます。

専用タブ

拡張ページは専用タブにロードされ、「表示される背景ページ」として機能します。この方法では、5 分間の終了制限は回避されますが、タブを開く必要があり、デバイス リソースが消費されます。

注意

これらの回避策は SW の寿命を延ばすことができますが、keep- のみを有効にすることが重要です。重要なタスクを実行するときに機能が生きています。メモリ消費を最小限に抑えるために、後で無効にします。さらに、SW の状態を永続ストレージ メカニズムに保存することで、予期せぬクラッシュから SW の状態を保護します。

以上がChrome 拡張機能は永続的な Service Worker 機能をどのように実現できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。