はじめまして。
現在VB6でMsxml2.XMLHTTPを使ってWEB通信し、返ってきたHTMLソースを
解析し、必要部分だけ表示するようなツールを作成しています。
このツールに更新ボタンを付け、最読み込みさせる機能をつけたのですが、
キャッシュが残ってしまっており、最新の状態に更新されません。
IEのキャッシュを削除すれば更新されるのですが、このキャッシュ削除を
VBですることはできないでしょうか?
テンポラリーファイルを探し、さらにその中の特定のファイルを探して削除
するという方法は考えましたが、もっとスマートなやり方があればご教授願います。
> キャッシュが残ってしまっており、最新の状態に更新されません。
ServerXMLHTTP とは異なり、XMLHTTP はキャッシュやプロキシ設定の自動検出がサポートされていますね。
> もっとスマートなやり方があればご教授願います。
VB6のAsyncReadメソッドや、InternetExplorerオブジェクトのRefresh2メソッドのように、キャッシュ制御が可能な物に変更してみるとか。
XMLHTTPでなければいけないのであれば、1回目と2回目が別の応答になるようにするため、リクエストヘッダに Pragma: no-cache や、あるいは、毎回異なるダミーのデータ(例えば現在時刻とか乱数とか)を含めてみるとか。(試していないので、これでキャッシュが使われなくなるかどうかはわかりませんけど)
おお!とてつもなく早いレス、大変ありがとうございます。
>1回目と2回目が別の応答になるようにするため、リクエストヘッダに Pragma: no-cache や、あるいは、毎回異なるダミーのデータ(例えば現在時刻とか乱数とか)を含めてみるとか
なるほど!キャッシュを削除する事ばかり考えていました。
柔軟な発想をありがとうございます。
早速ダミーデータとして現在時刻を引数にしてみたところ見事更新されました。
(ヘッダをPragma: no-cacheに変える方はまだ試していません。。)
もっと発想力の方も磨いていきたいと思います。
おかげさまで「解決」です。
ありがとうございました。