サブドメインのService Worker操作

Task

2018年10月23日 18:04

Workboxの挙動にも慣れ、本格的に導入するための環境を構築していく。
CLOGではディレクトリやファイル名の他に、サブドメインを使ってサイトを分けているため環境にサブドメインが使われているため、ローカル環境でもサブドメインを取得する。
/etc/hostsを開くと以下のようになっているので1行書き加える。


127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

管理画面と各ブログもPWA化したいので、サブドメインはadmin.localhostとhi97.localhostとする。

127.0.0.1   admin.localhost hi97.localhost

サブドメインでアクセスすると、ホストドメインと同様のページが表示される。


Servece Workerによるキャッシュ流れとしては以下のような動きを想定している。


  1. ポータルサイトに接続しサイトトップを動的キャッシュ
  2. 表示されている新着記事のリソースのプレキャッシュ

プレキャッシュは変更に弱く、キャッシュを破棄しなければ更新されないが、新着記事は更新されるたび古いものはサイトトップには表示されなくなるので、あとはプレキャッシュの寿命で破棄するだけで良い。
問題としてプレキャッシュしたあとに記事の編集が行われると最新の記事が読めなくなり、古いものが表示されてしまうようになる。


また大問題として、Service Workerは登録したドメインでしか動かすことができない。
プレキャッシュを行うのは各ブログの記事であり、サブドメインで管理しているためホストドメインのService Workerはサブドメインでfetchを行うことができず、せっかくキャッシュをしてもネットワークからGETしてしまうため、ホストドメインとサブドメインのキャッシュのやりとりをどのようにするのかが課題である。


ちなみにWeb StorageやIndexedDBもドメインでの管理のため、やりとりをすることができない。


関連記事