ラベル gdd2011jp の投稿を表示しています。 すべての投稿を表示
ラベル gdd2011jp の投稿を表示しています。 すべての投稿を表示

2011年11月3日木曜日

HTML5 AppCache 細かい挙動の要点だけ

Google Developer Day 2011のオフラインコンテンツのセッションでAppCacheの話が出たんだけど、細かい挙動がよくわからなかったので調べてみた。

基本的な所は色んなブログとかがあるので、ググると良いと思う。



調べたのはもうちょっと微妙な所です。ちなみにOSX版のGoogle Chrome15.0.874.106で調べた。 間違ってたらコメントください。

  • CACHEにあるものは一度キャッシュされたらオンラインの状態でも更新されない(リロードボタンを押しても同じ) 
  • manifestを更新すれば、2回目の再読み込みでAppCacheが更新される  manifest更新後、一回目の再読み込みでは変更されないことに注意。 
  • manifestの変更は、コメント行でもOK。なので#VERSION 1みたいな行を付けるのが定石 
  • CACHEとNETWORK両方にエントリがあると、CACHEの方が勝つ=オンラインでも更新されない 
  • manifest設定をしているhtmlファイルそのものは暗黙でキャッシュされることに注意。(なので明示的に書いたほうが良いマナー。) 
  • NETWORKとFALLBACKの両方にエントリがある場合、NETWORKの方が優先されて、FALLBACKしないっぽい。FALLBACKさせるリソースはNETWORKに書かない
  • つまり、設定が強いのはCACHE>NETWORK>FALLBACKの順。常にネットワーク参照させたいリソースはCACHEに書かないし、FALLBACKさせたいコンテンツはNETWORKに書かない。
WebKitベースのスマートフォンブラウザは基本的に対応してると考えて良いので、スタティックなコンテンツは積極的にAppCacheに入れてくのが良さそうだ。

「オンラインな場合はキャッシュを更新する。オフラインならキャッシュをそのまま出す。」みたいのはJavaScriptで書く必要があるのかな。
<追記>思ったんだけど更新が必要なリソースにおいてそれがキャッシュなのか古いデータなのか分からない設計はそもそも良くないので適切なデータにFALLBACKさせるべきと思った。

Google Developer Day 2011の要点だけ<HTML 5のオフライン機能>

正確でもないし網羅的でもないGoogle Developer Day 2011のメモを置いときます。大事そうなところは掘り下げてそのうちブログにするかも。HTML 5のオフライン機能というセッション。

Google Developer Day 2011の要点だけ<Google+ ウェブ アプリの構築>

正確でもないし網羅的でもないGoogle Developer Day 2011のメモを置いておきます。大事そうなところは掘り下げてそのうちブログにします(多分)。「Google+ ウェブ アプリの構築」というセッション。

Google Developer Day 2011の要点だけ<Android の優れたユーザーエクスペリエンス>

正確でもないし網羅的でもないGoogle Developer Day 2011のメモを置いときます。大事そうなところは掘り下げてそのうちブログにするかも。「Androidの優れたユーザエクスペリエンス」と題されたセッション。

Google Developer Day 2011 の要点だけ<基調講演>

正確でもないし網羅的でもないGoogle Developer Day 2011のメモを置いておきます。ほぼキーワードのみ羅列です。
大事そうなところは掘り下げてそのうちブログにするかも。まずは基調講演。