JavaScriptService worker / Workbox

WorkboxのPrecache Filesを試す

前回:WorkboxのGetting startedを触ってみる せっかくなので、オフラインで利用できるようにprecacheを設定していきましょう。今回の参考記事:Precache Files 作業前の様子 前回の記 […]

広告ここから
広告ここまで

前回:WorkboxのGetting startedを触ってみる

せっかくなので、オフラインで利用できるようにprecacheを設定していきましょう。
今回の参考記事:Precache Files

作業前の様子

前回の記事では、指定したファイルをキャッシュすることまでできています。ただし現時点ではNewworkOfflineにすると以下のようにページが表示されません。

これをオフラインでも見れるようにしていきます。

precacheするファイルを指定する

前回作成したsw.jsに以下のようにコードを書き足します。

importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.0.0/workbox-sw.js');
if (workbox) {
  registerRoutes()
  workbox.precaching.precacheAndRoute([
    { url: '/scripts/app.js', revision: '383676' },
    { url: '/css/style.css', revision: '383676' },
    { url: '/index.html', revision: '383676' },
  ]);
} else {
  console.log('Oh, workbox did not load')
}

動作を確認する

先ほどのコードで各ファイルがprecacheされている(はず)なので、リトライしてみます。更新したファイルをキャッシュしてもらうために、NetworkにあるOfflineのチェック外して、リロードします。(ブラウザキャッシュも削除しておきましょう)。その後再度NetworkOfflineにすると、オフラインでもページが表示されていることが確認できます。

まだprecacheの挙動に詳しくないので推測ではありますが、style.cssapp.jsfailedが出ているのはworkbox.routing.registerRouteにて先にネットワークからデータを取得しようとするstrategiesが指定されているからかなと思っています。strategies.cacheFirstを指定している画像ファイルにはエラーが出ていませんので。

今回のサンプルコード

GitHub:https://github.com/hideokamoto/workbox-practice/tree/20180321

Next: workbox-cliを試したい

どうやらこの辺りの設定をCLIやwebpack / gulpなどで設定できるようなので、次回はこの辺りを試してみたいなと思います。

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts