1

Delphi 7 で TWebBrowser コンポーネントを使用しています。TWebBrowser を使用して、サーバーに配置された独自の HTML ファイルを取得しています。HTML ファイルのコピーをユーザーが簡単に見つけられるようにしたくありません。現在、TWebBrowser を介してインターネット経由で取得されたすべてのファイルは、Microsoft の Internet Explorer > Tools 設定で構成された一時ファイル フォルダに保存されています。ダウンロードしたファイルのコピーを探すのにロケット科学者は必要ないからです。

HTML ファイルの<HEAD></HEAD>セクションに次の行があるにもかかわらず、ファイルがまだ一時ファイル フォルダーに保存されていることに驚きました。

<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="expires" content="-1" />

HTML ファイルがローカルにある場合、つまり一時ファイル フォルダーの外にあり、インターネット経由で取得されない場合、IE/TWebBrowser は一時ファイル フォルダーにコピーを保存しません。

私が尋ねているのは、META タグに何か問題があるのでしょうか、それともこれらのタグは、TWebBrowser がリモートで取得したファイルを処理する方法に影響を与えないのでしょうか?

代わりにINDY HTTPコンポーネントを使用してファイルをフェッチし、ユーザーのドライブの隠しフォルダーからロードする以外に、解決策はありますか?

4

4 に答える 4

0

ディレクティブなどを使用してブラウザにキャッシュしないようにCache-Control: no-cache指示すると、キャッシュされたデータを後続のリクエストで再利用しないようにブラウザに指示するだけで、代わりに毎回サーバーからデータを再リクエストする必要があります。オフラインブラウジングなどのためにファイルをローカルにキャッシュすることについては何も述べていません。

ちなみに、Cache-Control: no-cacheHTTP ヘッダーはサーバーとブラウザーの間のプロキシやその他のキャッシュ メカニズムによって認識され、通過するため、メタ タグでこれを指定するよりも HTTP ヘッダーを使用することを好みます。

代わりに、Web ブラウザとプロキシなどの共有キャッシュ メカニズムにデータを保存しないように指示するCache-Control: no-storeandディレクティブを見てください。private

ただし、ユーザーのデータを保護することはできますが、ユーザー自身から保護することはできないことに注意してください。ユーザーが IE の「no-store」ディレクティブを上書きできるようにするレジストリ設定があります。

おそらく、インメモリソリューションの方が優れているでしょう。

于 2013-09-14T23:59:08.220 に答える
0

なぜ有効になっ<meta>ていないのかについてはコメントできません。TWebBrowser.Navigate()しかし、 メソッドとTWebBrowser.Navigate2()メソッドの両方にFlagsパラメーターがあると言えます。フラグを指定してnavNoWriteToCache、取得したデータがキャッシュに保存されないようにすることができます。

于 2013-09-13T19:56:16.973 に答える