トップ «前の日記(2006-03-12) 最新 次の日記(2006-03-15)» 編集

Ussy Diary


2006-03-14

[JSF]ライフサイクル

時間がとれたので、再び勉強。やっぱり業務で扱わないとだめだめ。

ライフサイクルを学ぶ。教えてもらったmuimiさんの解説サイト。分かりやすい。

それと戻るボタンが押された後にHttpSessionからUIコンポーネントを 取得できず、submitしてもUIコンポーネントを復元するだけで終わってしまう。

RestoreViewフェーズで終わってしまうため。 ページをキャッシュしないようにし、戻るボタンが押されたら再び 強制的にリクエストさせ、UIコンポーネントを格納するようにしてみた。

これでいいのかなあ。ライフサイクル(というかJSF)は、まだまだなので引き続きお勉強。 試しているのはMyFaces。

[Web][Etc]ブラウザのキャッシュ

JSFのキャッシュさせない実装をしていたけど、IE 6ではうまくいくけどFirefox 1.5 ではキャッシュしてしまうという問題にぶちあたる。

Cache-Controlにno-cacheだけ指定していたことがだめだったっぽい。

no-cache, no-store

no-storeを指定で、Firefoxもおっけー。キャッシュを参照しなくなりました。

@IT会議室より引用

Cache-Controlは

・単純にキャッシュさせたくないなら「Cache-Control: no-cache」

・保存もさせたくないなら「Cache-Control: no-cache, no-store」

・念のために(他のヘッダにも注意を払いながら)なら  「Cache-Control: no-cache, no-store, must-revalidate」 って感じみたいですね。

「Cache-Control: post-check=0, pre-check=0」は、さすが「IE拡張」だけあって、 RFCじゃ全然見つかりません

FirefoxのCacheを削除し、no-cacheを指定しただけの場合に Cacheディレクトリ*1 *2を確認したところ、ファイルを更新していたよぉ。 まずキャッシュファイルが更新しているのか確認すべきだったなあ。

*1 Windows…%HOMEPATH%\Local Settings\Application Data\Mozilla\Firefox\Profiles\xxxxxxxx.default\Cache

*2 Linux…$HOME/.mozilla/firefox/xxxxxxxx.default/Cache