38

Service Worker と Shared Worker の違いは何ですか?

Shared Worker の代わりに Service Worker を使用する必要がある場合と、その逆の場合はいつですか?

4

4 に答える 4

28

Service Worker には、Shared Worker で利用できる機能以外の追加機能があり、一度登録すると、特定の Web ページの存続期間を超えて存続します。

サービス ワーカーは、共有ワーカーのようにイベントに応答できmessageますが、追加のイベントにもアクセスできます。イベントを処理fetchすることで、Service Worker は (制御されたページから発信された) ネットワーク トラフィックをインターセプトし、Request/Responseキャッシュからの応答を提供するなどの特定のアクションを実行できます。イベントを Service Worker に公開して、Web アプリが「バックグラウンド」でプッシュ メッセージを受信できるようにする計画もあります。push

もう 1 つの大きな違いは、持続性に関するものです。Service Worker が特定のオリジンとスコープに登録されると、無期限に登録されたままになります。(基になるスクリプトが変更された場合、Service Worker は自動的に更新され、手動またはプログラムで削除できますが、それは例外です。) Service Worker は永続的であり、Web ブラウザーでアクティブなページとは無関係に存続するためです。 、それは前述のプッシュ メッセージングを強化するためにそれらを使用するようなものへの扉を開きます。Service Worker はpush、アクティブなページに関係なく、ブラウザーが実行されている限り、「起動」してイベントを処理できます。将来の Web プラットフォーム機能も、この永続性を利用する可能性があります。

他にも技術的な違いがありますが、より高いレベルの観点からは、それらが際立っています。

于 2015-03-06T22:49:57.600 に答える