キャッシュ読み込ませずサイトを開く方法は

解決


Jyon  2009-07-16 18:19:22  No: 35142

WebBrowser1.Navigate(url);

例えば、上記のサイト(url)を開くとき、キャッシュを読み込ませずに、

開く方法がよくわからず困っています。

よろしくお願い致します。


flagに  2009-07-17 00:43:08  No: 35143

navNoReadFromCacheを加えてみたら?


Jyon  2009-07-18 22:43:46  No: 35144

procedure TForm1.Button1Click(Sender: TObject);
var
  URL: String;
  vFlag: OleVariant;

  begin
    
     vFlag:='navNoReadFromCache';//キャッシュから読まない
     
      URL :='http://search.yahoo.co.jp/';
   
    IsLogin := False;

     WebBrowser1.Navigate(URL,vFlag);

---------
flgに  さんありがとうございます。

上記のようにして実行してみているのですが、キャッシュから読み込んで
いるようです(LANを切断しても、キャッシュから読んで表示している)
こんな感じではないのでしょうか?


TS  2009-07-19 00:40:26  No: 35145

WebBrowser1.Navigate(URL,[navNoReadFromCache]);
では違ってますか、確認していません。
参考に
http://d.hatena.ne.jp/dayflower/20070921


Jyon  2009-07-19 00:49:56  No: 35146

TSさん、ありがとうございます。
すいません、未定義の識別子ということでエラーになってしまうようです。


TS  2009-07-19 01:06:11  No: 35147

参考のホームページにも記載がある様にnavNoReadFromCacheは定数です。
済みません、どこで定義されているのか確認していません。
Delphi7のヘルプでは、
navOpenInNewWindow  1  Open the resource or file in a new window.
navNoHistory  2  Do not add the resource or file to the history list. The new page replaces the current page in the list.
navNoReadFromCache  4  Do not read from the disk cache for this navigation.
navNoWriteToCache  8  Do not write the results of this navigation to the disk cache.
navAllowAutosearch  16  If the navigation fails, the Web browser attempts to navigate common
とあるので4でいいと思います。


TS  2009-07-19 01:24:11  No: 35148

vFlag:=4;    //キャッシュから読まない
 URL :='http://search.yahoo.co.jp/';
 WebBrowser1.Navigate(URL,vFlag);
でテストしてみて下さい。


Jyon  2009-07-19 09:53:43  No: 35149

TSさん、ありがとうございます。
すいません、やはりLAN回線を切断すると
キャッシュから読み込んでしまいます。
定数の定義の仕方とか、何かが抜けているのでしょうか?

以下、テスト用のコードです。
-------------------------

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw_TLB;

type
  TForm1 = class(TForm)
    Button1: TButton;
    WebBrowser1: TWebBrowser;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  URL: String;
  vFlag: OleVariant;

  begin

   vFlag:=4;//キャッシュから読まない

        URL :='http://search.yahoo.co.jp/';

        //IsLogin := False;

        WebBrowser1.Navigate(URL,vFlag);
   end;

procedure TForm1.Button2Click(Sender: TObject);
begin
       WebBrowser1.Navigate('about:blank');//表示をクリア

end;

end.


monaa  2009-07-19 21:50:15  No: 35150

上記操作D2007 IE8で動作確認しました。
キャッシュから読み込まれていません。


TS  2009-07-20 04:41:46  No: 35151

Delphi7でテストしましたmonaa さんと一緒で
回線を切断すると表示されなくなります。

vFlag:=0;
とするとキャッシュされていた物で表示されます
のでプログラムは問題無いと思われます。

>すいません、やはりLAN回線を切断すると
入り口の回線が切断されているか。

Exploreの設定で必ずキャッシュを読む設定があるのか。

私には分かりませんが、こんな事しか思いつきません。


Jyon  2009-07-21 11:31:44  No: 35152

こちらのコードの部分を活用したら、うまくいくようです。

http://d.hatena.ne.jp/dayflower/20070921

vFlag     := 2 or 4 or 8; //<--navNoHistory*1 | navNoReadFromCache | navNoWriteToCache。
vTarget   := Null;
vHeaders  := 'Content-Type: application/x-www-form-urlencoded'#13#10;

 WebBrowser1.Navigate(URL, vFlag, vTarget, vPostdata, vHeaders);
      |
全部の引数を指定して実行してみましたらうまくいきました。

とりあえず、解決です。

flgにさん、monaaさん、TSさんありがとうございました。


Jyon  2009-07-21 11:32:36  No: 35153

解決です。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加