現在開発中のjs-primer(JavaScript入門本)がServiceWorkerを使ってオフラインでも読めるようになりました。 Service Workersに対応しているブラウザ(IE以外)なら一度開いた後はキャッシュを使ってオフラインでも読めるようになっています。

また、ただのウェブページでもあるので書籍の内容が更新されれば最新の内容に更新されます。

iPhoneやAndroidなどホームにアプリとして追加もできます。

このオフライン対応の実装は@nd-02110114さんが大部分を実装してくれました。次のIssueでどのように実装したかがまとまっています。

実装的にはWorkboxを使ってGitBookが生成するHTMLなどのファイル(_book/以下)をキャッシュするService Workerの設定を作りました。

また、ホームに追加できるようにするためにmanifest.jsonを作り、適当なアイコンを作りました。

これでLighthouse 3.0(beta)のPWAスコアも100になりました。

PWA スコア

Thanks to @nd-02110114!

書籍はhttps://asciidwango.github.io/js-primer/から読めます。 (8割ぐらいは書き終わっていますが、まだ少し追加とリファクタリングが残っています)

Todo

Workboxを使ってCache First (Cache Falling Back to Network)で表示しているので、更新があった時の初回アクセスが古いバージョンになっている。 自動的に新しいものを優先して表示するようにしたい。

js-primerについて

js-primerはプログラミング初心者ではなくJavaScript初心者向けに書かれている入門書です。

必要なものを必要なだけ学びJavaScriptを読み書きできるようになることが目的です。 JavaScriptは今日開催されているTC39のミーティングで議論しているように変化を取り入れている言語であるため、JavaScriptの変化に対して対応できる基礎をつけていくのが主な目的です。

そのため、DOM APIの使い方やライブラリの使い方を学ぶ、何かを作る事といったことはこの書籍のスコープではありません。何かJavaScriptで問題があったときに、その解決方法を自分で調べることができるようにすること、その助けになることが目的の書籍です。