2017-05-13 28 views
0

私はWebとService Workerを学びましたが、私はそれらがさまざまなアプローチを意図していることを知っています。 This threadはそれらをより詳細に記述する。しかし、私が理解していないのは、これらの2つの違いがテクニカルです。サービスワーカーは、サーバーとクライアントサイドアプリケーションの間のプロキシであることを意図していますが、Webワーカーも同様です。 XMLHttpRequestにアクセスできるので、プロキシとしても使用できます。サービスとWebワーカーの技術的な相違

Webワーカーとサービスワーカーの技術的な違いは何ですか?

答えて

2

2つの主な違いは、サービスワーカーが、通常はリモートサービスに直接送信されるネットワーク要求を傍受し、ネットワークが存在する場合でもフロントエンドクライアントコードを処理できるようにイベントを処理することです。利用できません。つまり、Webアプリケーションのオフラインモードの基礎を提供します。フロントエンドコードは、サービスワーカーによって傍受されたサーバーと通信しているかのように、標準のfetch()要求を行います。

Webワーカーは単なる一般的なバックグラウンドスレッドです。ここでの目的は、長い実行中のタスクがメインのイベントループをブロックせず、低速のUIを引き起こすようなバックグラウンドコードを実行することです。 Webワーカーはネットワーク要求を傍受しません。フロントエンドコードは明示的にWebワーカーにメッセージを送信します。

+0

Webワーカーは明示的に呼び出す必要がありますが、サービスワーカーはクライアントサイドアプリケーションのすべてのフェッチによって呼び出される必要がありますか? – user3292653

+0

正確にはありません。明確にするために、Webワーカーまたはサービスワーカーのメソッドを直接呼び出すことはできません。あなたはそれらのメッセージだけを送ることができます。 Webワーカーとサービスワーカーの両方がpostMessage()でメッセージを受け取ることができます。サービスワーカーがネットワーク通話を傍受し、ウェブワーカーが傍受できない場所。 – bhspencer

関連する問題