- PR -

キャッシュが使われる理由

1
投稿者投稿内容
りりー
常連さん
会議室デビュー日: 2006/08/03
投稿数: 31
投稿日時: 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』をなくすと、キャッシュが使われなくなるのは
なぜなのでしょうか

ご存知の方がいらっしゃったらおしえてください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-07 14:24
引用:

りりーさんの書き込み (2007-02-07 14:10) より:

ASPのフォーラムがなかったので、Javaではないのですが、こちらに書いてみました。


本当に関係がないので、せめて VB 業務アプリケーション開発研究室の方に投稿しましょう。

引用:

HTMLにはmetaを記述して有効期限0、no-cacheにしています。
なぜ、キャッシュが使われてしまうのでしょうか?


HTTP レスポンス ヘッダでキャッシュは無効にしていますか?

引用:

また、QUERYSTRING『Proc=3』をなくすと、キャッシュが使われなくなるのはなぜなのでしょうか
ご存知の方がいらっしゃったらおしえてください。


それは、内部の人間しか知りえないですよ。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Tasuku
大ベテラン
会議室デビュー日: 2006/09/14
投稿数: 106
お住まい・勤務地: tokyo
投稿日時: 2007-02-07 14:40
引用:

HTMLにはmetaを記述して有効期限0、no-cacheにしています。
なぜ、キャッシュが使われてしまうのでしょうか?


METAタグはあまり信用できません(ブラウザによって挙動が異なる)ので、
httpヘッダとして、no-cacheとexpireを出力した方が良いかも知れません。

引用:

また、QUERYSTRING『Proc=3』をなくすと、キャッシュが使われなくなるのは
なぜなのでしょうか


ブラウザはQueryStringを含んだURLでキャッシュ対象を識別しているからです。
これを利用して、スクリプトの挙動に影響の無いQueryStringを強制的にURLに
付加してあげれば、強制的にリロードされます。(値はランダムにしましょう)
コード:
?Proc=3&Hoge=91A873BEA0920C23


とかです。Hoge= 以降は毎回ランダムに
りりー
常連さん
会議室デビュー日: 2006/08/03
投稿数: 31
投稿日時: 2007-02-07 16:31
Tasukuさん、じゃんぬねっとさん、ありがとうございました。
参考になりました。ランダム値をQUERYSTRINGに追加することで
うまく動作しました。

じゃんぬねんとさん
QUERYSTRING『Proc=3』っていうのは内部的な話ではないんです。
別に変数名や値は何でもよかったんです。ただあるか、ないかで動作内容が
違ったので、お尋ねしたまでです。わかりにくくてすいませんでしたね。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-07 16:39
引用:

りりーさんの書き込み (2007-02-07 16:31) より:

QUERYSTRING『Proc=3』っていうのは内部的な話ではないんです。
別に変数名や値は何でもよかったんです。ただあるか、ないかで動作内容が
違ったので、お尋ねしたまでです。わかりにくくてすいませんでしたね。


そうみたいですね。

"『Proc=3』を使用すると" と、
"『Proc=3』をなくすと、キャッシュが使われなくなる"

を見て、限定的なものだと捉えてしまいました。
'何らかのクエリ文字列が指定してあると' と書いてあれば、
正しく理解できたと思いますが、それにしても私には文章の補完能力がないようです...

申し訳ありませんでした。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)