こんにちは、いつも参考にさせていただいてます。
現在、WebBrowserにて、表示したHTML上の動画や画像をキャッシュから削除したいのですが、うまくタイミングが取れません。
DownloadCompleteイベントだとサイズの大きい動画の場合うまくいきませんし、
DocumentCompleteイベントは何故か発生しません・・。
何かよい案はありませんでしょうか?
最終的な目的がわからないですが、
IEブラウザのオプションで、
一時ファイルを保持するサイズを0にすれば、
いいのではないでしょうか?
説明不足でしたね^^;
申し訳ありません。
現在、ActiveXコントロールにWebBrowserを付加し、
・IEでActiveX付きのHTMLを表示。
・ActiveXでWebBrowserを生成。
・WebBrowserでHTMLを表示。
という仕様となっています。
WebBrowserで表示したHTMLのキャッシュを削除したいのです。
しかし、削除するタイミングを取得できないのです。
取得したいタイミングとして、
「TemporaryInternetFilesにキャッシュされた瞬間」
それが不可能ならば、
「ページが完全に表示された瞬間」
です。
また、これは第三者(閲覧者)に対する制御です。
要するに、「公開するページ全てをコピーされないようにする」です。
よろしくお願いします。
ActiveXでその情報を知るのは、たぶんセキュリティ上の理由で難しいです。
キャッシュを削除するのではなく、最初からキャッシュされないようにする方向で考えては?
Webアプリケーションの開発ではキャッシュされたデータがブラウザ側に残ると困る場面が結構あるので、その手の開発者向けの情報を探せば割と簡単に見つかります。
とりあえず、ブラウザ、Proxyサーバ、検索エンジン用のキャッシュ無効化を設定しておけば良いでしょう。
すいません。画像や動画ってことはタグは無理ですね。
案1:HTTPヘッダで何とかする
案2:ファイルに保存できないタイプのストリーミングで動画を提供
今回の事例はユーザー(特にナローバンドの人)に不便を強いることになりますので、うまくやらないと反感を買いかねませんね。ご注意を。
レスありがとうございます。
>ActiveXでその情報を知るのは、たぶんセキュリティ上の理由で難しいです。
「TemporaryInternetFilesにキャッシュを入れるのはブラウザであろう。」
「WebBrowserはブラウザだからキャッシュに入れるタイミングも計れるだろう。」
という憶測から質問させて頂いたのですが、出来ないですか・・。
残念です・・
他の方法、「キャッシュに残さない」ですが、
HTML,ASPファイルに関しては、タグやResponse.〜〜でキャッシュに残さないようにできるのは知ってます。
動画もストリーミングで可能なことも分かってます。
となると、動画以外のファイル・・・という事になります。
私、ストリーミングの知識がゼロに等しいので質問しますが、
ストリーミングで静止画やフラッシュ、その他のファイル形式も可能ですか?
予想では不可能な気がします。。
そこで、
動画はストリーミングで可能。
静止画は○○○で可能。
フラッシュは□□□で可能。
×××は△△△で可能。
という事はできないですかね?
ちなみに、現在は一時的な妥協策という事で、
ActiveXコントロールにTimerオブジェクトをくっつけて、
1秒毎のTimerイベントで削除処理を実行。
⇒対象のファイルが存在するのなら、それを削除し、Timerを停止。
⇒対象のファイルが存在しなければ、次のTimerイベントを待つ。
という処理をさせてます。
しかし、この処理方法って・・・・・ちょっと酷いですよねぇ?^^;
>今回の事例はユーザー(特にナローバンドの人)に不便を強いることになりますので、うまくやらないと反感を買いかねませんね。ご注意を。
ですよね。 私も、キャッシュは有効にしてレスポンスを早くした方が便利だと思います。
ですが、やらなければならないのです。
すいません。セキュリティの話はこちらの勘違いでした。
これが参考になるかもしれません。
http://support.microsoft.com/default.aspx?scid=kb;ja;246247
http://support.microsoft.com/default.aspx?scid=kb;en-us;262110
http://msdn.microsoft.com/workshop/browser/webbrowser/reference/events/documentcomplete.asp
複数フレームの場合はイベントが複数回発生するのできちんとチェックしろと言う事が書いてありますが大丈夫でしょうか?
いずれにしてもHTTPヘッダを細工しないとProxyサーバに残るのでHTTPヘッダの細工も不可避でしょうね。
ツイート | ![]() |