HTML5入門
第10回 オフライン対応
日本のモバイルでの通信環境は電波が届かないということはあまりないですが、Webを使っていて困るタイミングといえばネットに接続できないときではないでしょうか。特に海外ではまだまだ通信インフラが整っていない国もあるので、オフライン対応をすることは実は世界的に考えてもWebユーザーにとってメリットは大きいです。
オフライン対応はユーザーがシームレスにWebを体験できるので利用頻度も高まり、そしてWebサービス自体への信頼度の向上にもつながります。また、サービスを提供する側は設定したKPIへの貢献にもなるでしょう。
Tips
KPIとは、ビジネスなどの目標達成をするための指標のこと。例えばお問い合わせを月間○件獲得するなどがあり、最終的なゴールのプロセスでの指標になります。
これらを実現してくれる技術として注目されているのがService WorkerというAPIです。
Service Worker
W3Cに技術仕様のページがあり、執筆時(2016年5月11日)ではWorking Draftです。
https://www.w3.org/TR/service-workers/
Service WorkerはWebページとは別にバックグラウンドで実行するJavaScriptで、ブラウザ側に実装されるAPIになります。通常、ブラウザはWebサーバーと通信を行いますが、Service Workerはその両者の間に入ります。
Service WorkerはWebサーバーのキャッシュを保持しているので、ブラウザがWebサーバーに接続することなくオフラインでもWebページを表示することができるというものでProxy(代理)サーバーの役割をします。
また、Service WorkerをWeb上で使うには、セキュリティ上の問題でHTTPSサーバーが必要になります。(お使いのマシンのローカルでも動かすことはできます。)
Tips
W3Cが技術仕様を勧告するまでには4つのステップがあります。
- Working Draft
- 技術仕様を定める検討の草案として発行されたもの。
- Candidate Recommendation
- 技術的な要求を満たしていてWorking Draftよりもより技術仕様として検討できる文書で、実装経験を収集するために発行されたもの。
- Proposed Recommendation
- 現実的な技術として検討されたレポートで、W3Cの諮問委員会に意見を求めるもの。
- W3C Recommendation
- 技術関係者に広く合意を得た仕様。
Tips
HTTPSとはWebサーバとWebブラウザの間の暗号化された通信で、HTTPSを使った通信をすることによってその通信間でのデータの盗み見や操作を防止することができます。
オフライン対応以外で注目されているService Worker関連の技術
Service Workerで注目されているのはオフライン対応だけではありません。ネイティブアプリで可能なプッシュ通知がWebでもできるようになるなどの技術が注目されています。
国内では、リクルートの『SUUMO』がAndroid OSのスマートフォン用サイトでプッシュ通を実装したとニュースになりました。Service Workerの技術仕様はまだ定まっていませんが、今後も注目してきたい技術です。
Google DevelopersにYour first push notifications web appというプッシュ通知について学べるコンテンツがあるので、是非トライしてみましょう!