SQLの窓

2014年06月07日


GET メソッドでフォーム送信時にキャッシュを読まないように( 特に Google Chrome )


header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );

WEB アプリケーションを作成する以上、http ヘッダにキャッシュコントロールは必ずセットしますが、それでも何故かキャッシュから読まれる場合があります。

他のトラブルを事前に解消する為にも、一時的には全てのキャッシュを削除するのは良い方法ではありますが解決にはなりません。

Google Chrome では、デベロッパーツールに、『Disable cache (while DevTools is open)』という機能もありますが、先日そうしていても submit ボタンがサーバーへアクセスしない事象に遭遇しました。

で、結局ベーシックな方法ではありますが、以下のように URL を常に変更してキャッシュから読まないようにするのが確実である事が解りました。

Google Chrome で発生した手順(localhostにて)

1) 問い合わせ画面から、window.open で新しいウインドウを開く。
2) そのウインドウでデータを削除し、ウインドウを閉じる
3) 元の問い合わせ画面が表示される( 隠れていたのが見えるようになっただけ )
4) submit ボタンを押しても反応が無い( Network で見ても反応なし )
5) なのに、右クリックからソースを見ると変わっている( 何故?? )

Google Chrome では、以前よりレンタルサーバを使ってサーバーを変更しても変化しないというような事がありました。とにかく、効率の良い表示のアルゴリズムで作成されているのでしょうが、バグもあるのだろう・・・というのが正直な感想です。
<input
	type="hidden"
	name="cache"
	value="<?= uniqid() ?>">



posted by lightbox at 2014-06-07 18:34 | PHP + ベーシック | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり