9

私は何時間もグーグルでこれを理解しようとしてきましたが、できません。フォーム webbrowser1 に 1 つの webbrowser コントロールがあります。

ページを読み込むと、たとえば google.com を使用すると、webbrowser1.refresh()またはを使用するwebbrowser1.navigate("google.com")と、ページがリロードされず、キャッシュされているため、キャッシュをリロードするだけです。これは、特にフォーラムや craigslist などのページで非常に顕著です。

更新ごとにキャッシュをクリアする (理想的ではない) か、キャッシュをすべて無効にする必要があります。アイデアはありますか? 私が見つけたのは時代遅れのものだけです(vb6以下)。

4

8 に答える 8

5

ページに次のメタタグを追加します

<meta http-equiv="cache-control" content="no-cache">
于 2012-05-16T05:25:13.027 に答える
5

に電話してみてくださいwebbrowser1.Refresh(WebBrowserRefreshOption.Completely)。ページが更新され、IE の ctrl+F5 のような最新バージョンが表示されます。ここここで詳細を参照してください。

于 2010-08-06T05:44:13.640 に答える
1

使用navigate(url,4) 0x4=noCacheフラグ

于 2012-06-30T14:49:26.283 に答える
1

.navigate メソッドでは、番号 2 (履歴なしフラグ) を渡しますが、これはそのナビゲーションの履歴のみを削除し、リンクをたどったときの履歴は削除しません。クリックされたリンクの履歴を強制終了する場合は、beforenavigate イベント中にナビゲーションを傍受し、cancel = true を設定してナビゲーションをキャンセルし、イベントによって提供される URL を使用して、.navigate フラグを使用してナビゲーションを再実行できます。再び 2 に設定します (履歴なしフラグ)。

Cookie などの他のキャッシュ アイテムに関する限り、フラグは機能しません (ただし、現在のバージョンではこれを実装している可能性があります)。実際に必要なすべてのキャッシュ アイテムを削除するには、ユーザーにクエリを実行して、Web ブラウザー コントロールの外部でこれをプログラムで実行する必要があります。他の Api を使用してキャッシュを削除し、おそらくドキュメントの完了イベント中またはブラウジングが完了したときに削除します。

また、Web ブラウザー コントロールを使用して履歴を削除すると、Web ブラウザー コントロールの .goback メソッドが機能しないことに注意してください (残念ながら同じ履歴を使用し、別の履歴リストをメモリに保持しないため)。 goback、戻るものが何もなかったように動作します:/。

さらにサポートが必要な場合はお知らせください。

于 2012-03-10T13:25:07.077 に答える
1

このページでは、一時ファイルをクリアして読み取る方法を示します。私もこの問題を抱えていますが、 documentcomplete イベントをトリガーしないため、.refresh() が役に立たない場合。したがって、リロードしたいときは、単に使用.navigate()し、ナビゲーションの前に呼び出します

System.Diagnostics.Process.Start("rundll32.exe","InetCpl.cpl,ClearMyTracksByProcess 8")

キャッシュをクリアするため。

于 2011-09-08T06:34:53.760 に答える
0

URLに乱数またはGUIDをパラメーターとして追加してみてください。そのような:

var url = "http://google.com";
webBrowser.Navigate(url + "?refreshToken=" + Guid.NewGuid().ToString());

エレガントではありませんが、機能します。それが役に立てば幸い。

于 2012-03-09T17:18:12.713 に答える
0

C# WebBrowser コントロール: Cookie をクリアせずにキャッシュをクリアする

于 2010-08-10T03:34:33.080 に答える