- - PR -
キャッシュが使われる理由
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-02-07 14:10
ASPのフォーラムがなかったので、Javaではないのですが、こちらに書いてみました。
ASPファイル「kensaku.asp」内で検索入力画面と検索結果画面両方をコーディングしています。言語はVBScriptとJavaScriptの併用です。 検索結果画面の『戻る』ボタンを押下したときに自分自身を現画面で際呼び出しして、 初期画面に戻す仕様になっています。 window.open("kensaku.asp?Proc=3", _self); このQUERYSTRING『Proc=3』を使用すると、遷移した画面がキャッシュを使用した内容になっています。(現在時刻で確認) HTMLにはmetaを記述して有効期限0、no-cacheにしています。 なぜ、キャッシュが使われてしまうのでしょうか? また、QUERYSTRING『Proc=3』をなくすと、キャッシュが使われなくなるのは なぜなのでしょうか ご存知の方がいらっしゃったらおしえてください。 | ||||||||||||
|
投稿日時: 2007-02-07 14:24
本当に関係がないので、せめて VB 業務アプリケーション開発研究室の方に投稿しましょう。
HTTP レスポンス ヘッダでキャッシュは無効にしていますか?
それは、内部の人間しか知りえないですよ。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-02-07 14:40
METAタグはあまり信用できません(ブラウザによって挙動が異なる)ので、 httpヘッダとして、no-cacheとexpireを出力した方が良いかも知れません。
ブラウザはQueryStringを含んだURLでキャッシュ対象を識別しているからです。 これを利用して、スクリプトの挙動に影響の無いQueryStringを強制的にURLに 付加してあげれば、強制的にリロードされます。(値はランダムにしましょう)
とかです。Hoge= 以降は毎回ランダムに | ||||||||||||
|
投稿日時: 2007-02-07 16:31
Tasukuさん、じゃんぬねっとさん、ありがとうございました。
参考になりました。ランダム値をQUERYSTRINGに追加することで うまく動作しました。 じゃんぬねんとさん QUERYSTRING『Proc=3』っていうのは内部的な話ではないんです。 別に変数名や値は何でもよかったんです。ただあるか、ないかで動作内容が 違ったので、お尋ねしたまでです。わかりにくくてすいませんでしたね。 | ||||||||||||
|
投稿日時: 2007-02-07 16:39
そうみたいですね。 "『Proc=3』を使用すると" と、 "『Proc=3』をなくすと、キャッシュが使われなくなる" を見て、限定的なものだと捉えてしまいました。 '何らかのクエリ文字列が指定してあると' と書いてあれば、 正しく理解できたと思いますが、それにしても私には文章の補完能力がないようです... 申し訳ありませんでした。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1