WEBのキャッシュを削除するには?

解決


Zooo  2004-05-11 18:47:12  No: 113168  IP: [192.*.*.*]

はじめまして。
現在VB6でMsxml2.XMLHTTPを使ってWEB通信し、返ってきたHTMLソースを
解析し、必要部分だけ表示するようなツールを作成しています。
このツールに更新ボタンを付け、最読み込みさせる機能をつけたのですが、
キャッシュが残ってしまっており、最新の状態に更新されません。
IEのキャッシュを削除すれば更新されるのですが、このキャッシュ削除を
VBですることはできないでしょうか?
テンポラリーファイルを探し、さらにその中の特定のファイルを探して削除
するという方法は考えましたが、もっとスマートなやり方があればご教授願います。

編集 削除
魔界の仮面弁士  2004-05-11 19:43:38  No: 113169  IP: [192.*.*.*]

> キャッシュが残ってしまっており、最新の状態に更新されません。
ServerXMLHTTP とは異なり、XMLHTTP はキャッシュやプロキシ設定の自動検出がサポートされていますね。

> もっとスマートなやり方があればご教授願います。
VB6のAsyncReadメソッドや、InternetExplorerオブジェクトのRefresh2メソッドのように、キャッシュ制御が可能な物に変更してみるとか。

XMLHTTPでなければいけないのであれば、1回目と2回目が別の応答になるようにするため、リクエストヘッダに Pragma: no-cache や、あるいは、毎回異なるダミーのデータ(例えば現在時刻とか乱数とか)を含めてみるとか。(試していないので、これでキャッシュが使われなくなるかどうかはわかりませんけど)

編集 削除
Zooo  2004-05-11 20:04:56  No: 113170  IP: [192.*.*.*]

おお!とてつもなく早いレス、大変ありがとうございます。

>1回目と2回目が別の応答になるようにするため、リクエストヘッダに Pragma: no-cache や、あるいは、毎回異なるダミーのデータ(例えば現在時刻とか乱数とか)を含めてみるとか

なるほど!キャッシュを削除する事ばかり考えていました。
柔軟な発想をありがとうございます。
早速ダミーデータとして現在時刻を引数にしてみたところ見事更新されました。
(ヘッダをPragma: no-cacheに変える方はまだ試していません。。)
もっと発想力の方も磨いていきたいと思います。
おかげさまで「解決」です。
ありがとうございました。

編集 削除