サービスワーカー(Service Worker)

サービスワーカー(Service Worker) S

サービスワーカー(Service Worker)とは、Webページとは別に、ブラウザの裏側で動き続ける小さなプログラムのことです。ページとネットワークの間に立ち、通信を横取りして代わりに応答することができます。

現実世界に例えると、サービスワーカーは玄関に控えている取次役のようなものです。届け物を頼まれると、まず自分の手元を探し、あればその場で渡します。無いときだけ外へ取りに行きます。外が悪天候でも、手元にあるぶんは渡せます。

サービスワーカー図解

サービスワーカー(Service Worker)

普通のスクリプトとの違い

項目 普通のスクリプト サービスワーカー
動く場所 ページの中 ページとは別の場所
ページを閉じたら 止まる 必要なとき動ける
画面の操作 できる できない
通信への介入 できない 横取りして応答できる

いちばんの役目は「オフラインでも動かす」

もっとも分かりやすい使い道がこれです。一度読み込んだ画像やファイルを手元に保管しておき、次に同じものが求められたら、通信せずにその場で返します。電波の届かない場所でも画面が出る、というアプリのような振る舞いが、これで実現できます。

表示が速くなる

電波が届く場所でも効果があります。手元にあるものを返すぶん、通信の往復を待たずに済み、二回目以降の表示が目に見えて速くなります。読み込みの遅さが離脱につながるWebサイトでは、この差が実際の成果に響きます。

通知を受け取れる

もう一つの働きが通知です。ページを閉じていても、サーバーからの知らせを受け取って画面に出すことができます。アプリを入れなくてもスマートフォンに通知が届くのは、この仕組みによるものです。ただし利用者の許可が要ります。

PWAを支えている

Webサイトをアプリのように扱う「PWA」という考え方があります。ホーム画面に置ける、オフラインでも開ける、通知が来る。この三つのうち後ろの二つを担っているのがサービスワーカーです。PWAを名乗るには、事実上これが欠かせません。

HTTPSでしか動かない

安全上の決まりがあります。通信を横取りできるという強い力を持つため、暗号化された接続でなければ動作しません。悪意のある第三者に仕込まれると、表示内容をすべて差し替えられてしまうからです。開発時の手元の環境だけは例外として許されています。

更新が届かない、という落とし穴

導入して最初に困るのがこれです。手元に保管したものを返し続けるため、サイトを修正しても古い内容が表示され続けることがあります。保管したものの入れ替え方をきちんと設計しておかないと、「直したのに変わらない」という問い合わせを招きます。

使いどころを選ぶ

万能ではありません。内容が頻繁に変わるページや、常に最新であることが求められる画面では、かえって扱いが難しくなります。変化の少ない画像やデザインのファイルから適用し、様子を見ながら広げていくのが現実的な進め方です。

あわせて知っておきたい用語

  • PWA:
    Webサイトをアプリのように使える仕組みです。
  • キャッシュ:
    一度使ったデータを手元に保管しておくことです。
  • HTTPS:
    通信を暗号化してやり取りする方式です。
  • JavaScript:
    ブラウザの中で動く、代表的なプログラム言語です。

コメント

タイトルとURLをコピーしました