きりかノート 3冊め

おあそびプログラミング

前回発表の宿題(未回答の質問)について調べた

勉強会のMLにも投げたけど、こっちにも記録。

サーバの状態と協調したアクセスができるのか

更新されている場合はネットワークからとってくるけど、そうでならキャッシュを使いたい、というまあふつうのHTTPアクセスだよね。

こたえ:できない

ローカルキャッシュの有効判定先行して、その後必要ならネットワークに取りに行くという構成なので、わりと根本的に直さないと実現できない。いじってどうにかなりそうな箇所はなくもないけど、別の方法(TTURLRequestを使わない)で実現するほうが簡単だと思う。

ディスクキャッシュのサイズ制限はできるか

こたえ:できない

期限は設定できる(invalidationAgeプロパティ)けれど、それを超過したものが自動的に消えたりはしない。てか、まとめて消す方法もない。

なんちゅーか、みんな、的確に弱点をついてくるなあ。。。後者は単なる機能の不足(必要であるとすれば)なので実装は難しくないけど、前者はまあ無理だ。ということでTTURLRequestの使用上の要件として

  • そのURLについて、どのようなデータ(画像か、テキストか、など)が返ってくるかを知っていること

の他に

  • ある程度の期間について、そのURLの内容が変わらないことを期待できること

というのを追加だな。関連して検証してたんだけど、request.cacheExpirationAgeを指定しない(= 0)ときの動作があやしいぞ(実装というより仕様として)。