2

是否可以清除所有站点缓存?我想在用户注销或会话到期时执行此操作,而不是指示浏览器不要缓存每个请求。

4

5 回答 5

3

据我所知,没有办法指示浏览器清除它为您的网站缓存的所有页面。当浏览器尝试访问该页面时,您作为网站作者可以对页面进行过度缓存的唯一控制。您可以使用标头指定页面的缓存版本应在特定时间过期Expires,但即使那样浏览器实际上也不会在那时从其缓存中清除页面。

于 2009-02-16T18:31:03.913 回答
2

我当然不希望 - 这会给网站对客户端机器的破坏力!

于 2009-02-16T18:41:06.133 回答
1

如果安全是您主要关心的问题,为什么不使用 HTTPS?浏览器不会缓存通过 HTTPS 接收的内容(或仅将其缓存在内存中)。

于 2009-02-16T18:52:37.963 回答
1

模仿这一点的一种棘手方法是在引用站点上的任何静态内容时将 session-id 作为参数包含在内。当用户建立会话时,由于包含此参数,浏览器会将所有内容片段识别为新内容。在会话期间,浏览器将使用其缓存中的静态内容。用户注销并重新登录后,静态内容的 session-id 参数将有所不同,因此浏览器将识别这是全新的内容并重新下载所有内容。

That being said... this is a hack and I wouldn't recommend pursuing it.. For what reason do you want the user's cache to be cleared after their session expires? There's probably a better solution that can fit your situation as opposed to what you are currently asking for.

于 2009-02-16T19:11:13.660 回答
0

如果你在谈论 asp.net 缓存对象,你可以使用这个:

    For Each elem As DictionaryEntry In Cache
      Cache.Remove(elem.Key)
    Next            

从缓存中删除项目,但这可能不是您尝试完成的全部内容。

于 2009-02-16T18:50:09.153 回答