サイトのキャッシュをすべてクリアすることはできますか? 各リクエストでブラウザにキャッシュしないように指示するのではなく、ユーザーがログアウトするか、セッションが期限切れになったときにこれを行いたいと思います。
5 に答える
私の知る限り、あなたのサイト用にキャッシュされたすべてのページをブラウザにクリアするように指示する方法はありません。Web サイトの作成者がページのキャッシュを制御できるのは、ブラウザがそのページにアクセスしようとしたときだけです。ヘッダーを使用して、ページのキャッシュされたバージョンが特定の時間に期限切れになるように指定できますがExpires
、その場合でも、ブラウザはその時点でキャッシュからページを実際にクリアしません。
私は絶対にそうではないことを願っています-それはクライアントマシンに対してWebサイトに破壊的な力を与えるでしょう!
ここでセキュリティが主な関心事である場合は、HTTPSを使用してみませんか?ブラウザは、HTTPS経由で受信したコンテンツをキャッシュしません(またはメモリにのみキャッシュします)。
これを模倣するためのトリッキーな方法の1つは、サイト上の静的なコンテンツを参照するときに、パラメーターとしてsession-idを含めることです。ユーザーがセッションを確立すると、このパラメーターが含まれているため、ブラウザーはすべてのコンテンツを新規として認識します。セッションの間、ブラウザはキャッシュ内の静的コンテンツを使用します。ユーザーがログアウトして再度ログインすると、静的コンテンツのセッションIDパラメーターが異なるため、ブラウザーはこれが完全に新しいコンテンツであると認識し、すべてを再度ダウンロードします。
そうは言っても...これはハックであり、それを追求することはお勧めしません。セッションの有効期限が切れた後、どのような理由でユーザーのキャッシュをクリアしたいですか?あなたが現在求めているものとは対照的に、あなたの状況に合うことができるより良い解決策があるでしょう。
asp.netキャッシュオブジェクトについて話している場合は、次を使用できます。
For Each elem As DictionaryEntry In Cache
Cache.Remove(elem.Key)
Next
キャッシュからアイテムを削除しますが、それはあなたが達成しようとしていることの完全な範囲ではないかもしれません。