1. ホーム
  2. javascript

[解決済み] ウェブワーカーにできないことで、サービスワーカーにできることは何ですか?

2022-04-21 10:14:22

質問

ウェブ ワーカーができないことで、サービス ワーカーにできることは何ですか?またはその逆は?

ウェブワーカーは、サービスワーカーの機能のサブセットと思われます。これは正しいのでしょうか?

解決方法は?

用途に大きな違いがあります。

ウェブワーカー

Web Workers は、Web コンテンツがバックグラウンドのスレッドでスクリプトを実行するためのシンプルな手段を提供します。ワーカスレッドは ユーザーインターフェースに干渉する。さらに、I/Oを実行することができます。 XMLHttpRequestを使用します(ただし、responseXMLとchannel属性は使用できません)。 は常にNULLである)。ワーカーを作成すると、そのワーカーにメッセージを送ることができます。 作成したJavaScriptコードは、メッセージをイベント ハンドラで指定されたコード(またはその逆)。

ソース - Web Workersの使用

サービスワーカー

サービスワーカーは基本的にプロキシサーバーとして、ウェブの間に位置し アプリケーション、そしてブラウザとネットワーク(利用可能な場合)。これらは その目的は、(とりわけ)効果的な オフライン体験のために、ネットワークリクエストを傍受して ネットワークが利用可能であるかどうかに基づいて、適切なアクションを行います。 更新されたアセットがサーバーに存在すること。また、以下のようなアクセスも可能です。 プッシュ通知やバックグラウンドシンクのAPIを提供します。

ソース - サービスワーカーAPI

つまり、Web Workers は、ユーザー・インターフェースをフリーズさせることなく、高価なスクリプトを実行するのに便利なのです。 一方、Service Workersはネットワークリクエストからのレスポンスを変更するのに便利です(例えば、オフラインアプリを構築する場合)。