Google Gearsのオフライン機能を調べてて、気づいた。
Gearsはオフラインで使いたいCSSだのJSだのをLocalServerでキャッシュするんだけど、これを使う場合は次のようにする。
- gears_init.jsを読み込む(Gearsの初期化用ライブラリ)
- JSでbeta.localserverを生成
- ManagedStoreを生成
- ストアにマニフェストを読ませる
- ストアのcheckForUpdate()メソッドを実行する
こうするとマニフェストで指定したリソースがキャッシュされ、オフライン状態でも使えるようになる。
さて。ここで引っかかる。ManagedStoreを生成してマニフェストを読ませた段階でLocalServerが有効になるわけで、それまでは無効。ってことは、オフライン状態だとgears_init.jsはどっから取ってくればいいわけ?ついでに言うと、ページのHTML自体もどこから湧いてくるのか。
最近開いたページならブラウザのキャッシュに入ってるかもしれないけど、キャッシュアウトしてたらGearsのLocalServerが有効になるところまで持って行けない。
なお、HTML5のアプリケーションキャッシュだと初期化とかしなくていいからこの問題は無さそう。