monolithic kernel

アプリケーションキャッシュ利用時にGoogle AdSense/Analyticsなどの外部サービスを正しく動作させる

前回の記事「iPhoneでHTML5のアプリケーションキャッシュを利用する | monoの開発ブログ」ではとりあえずアプリケーションキャッシュを利用することができましたが、Google AdSenseやGoogle Analyticsなどの外部サービスと併用すると読み込まれたり読み込まれなかったりして正しく動作しませんでした。

外部サービスを正しく動作させるためには、キャッシュマニフェストに設定を記述する必要があるようです。

CACHE MANIFEST
# version 1.0
CACHE:
index.html
NETWORK:
http://pagead2.googlesyndication.com/
http://www.google-analytics.com/

CACHE:、NETWORK:はセクションヘッダで、それ以降の行がそれぞれ明示的キャッシュセクション、オンラインホワイトリストセクションであることを示しています。

明示的キャッシュセクション

明示的キャッシュセクションはキャッシュを行うファイルを指定するセクションです。セクションヘッダを記述しない場合は明示的キャッシュセクションに記述したものとして解釈されるため、前回のようにファイル先頭に記述する限りにおいてはこのセクションヘッダは必要ありませんが、今回は複数のセクションを利用するため、分かりやすさのために記述しています。

オンラインホワイトリストセクション

オンラインホワイトリストセクションはサーバから直接データを取得する必要のあるURIを指定するセクションです。詳細はよく分からないのですが、常にネットワークからデータを取得したいリソースについてはここで指定しておけば正しく動作するようです。

参考