オフラインキャッシュについて知っていることまとめ

photo by vizzzual-dot-com

 東京に打ち合わせに行ったついでに、念願のプログラマーズカフェに顔を出してきました。
モバイラーズオアシスに関して有益な助言をいっぱいいただいてホクホクです。

で、それとは関係があるようなないようなで、HTML5とかiPhoneのWEB作成について聞かれました。
おおよそのことはジュンヤさんがお話しされていたし、僕の知っていることはwebteko#11Html5で作るiPhoneアプリケーション2010に書いたとおりなのですが、
HTML5のアプリケーションキャッシュに関して書いてなかったことに気がついたので、軽くまとめてみます。
正直、自分は使いこなせなくて立ち止まっている状態なので、遠慮なく屍を踏み越えていってくださいませ。

HTML5のアプリケーションキャッシュとは

 オフラインキャッシュとも呼ばれるみたいです。マニフェストファイルというのを書いておくことで、画像とかHTML,CSSなどをキャッシュに保存しておき、次回以降ネットワークにつながっていなくても該当サイトを表示することを可能にします。iPhoneでつかうと、起動が早くなるので、まるでiPhoneアプリのような動作をさせることもできます。
マニフェストファイルの書き方については、
W3C-OfflineWebApplications日本語訳-HTML5.JPを見ればばっちりわかります。というかファイルを列挙すれば終わりです。

ただ、安直にキャッシュすると、じゃあそのファイルをどうやって更新するんだ、というところで困ります。自分一人ならブラウザキャッシュをクリアすればいいですけど、お客さんにそんなこと言えませんので。
その点については、この記事が詳しい。

要するに、マニフェストファイルに日付かシリアル番号を書いておくか、JavaScriptで更新するコードを書いておきます。自分がやった感触だと、どうもiPhoneは後者じゃないと駄目な感じがしました。確信はないですが。

あと、iPhoneでキャッシュを使うと、Geolocation APIが失敗するようになりました。原因を突き止められなくて、現在はキャッシュを使うのをあきらめている状態です。

なんだか中途半端にしかわかっていないことばかりのような気もしますが、何かのお役に立てば幸いです。