是否可以清除所有站点缓存?我想在用户注销或会话到期时执行此操作,而不是指示浏览器不要缓存每个请求。
5 回答
据我所知,没有办法指示浏览器清除它为您的网站缓存的所有页面。当浏览器尝试访问该页面时,您作为网站作者可以对页面进行过度缓存的唯一控制。您可以使用标头指定页面的缓存版本应在特定时间过期Expires
,但即使那样浏览器实际上也不会在那时从其缓存中清除页面。
我当然不希望 - 这会给网站对客户端机器的破坏力!
如果安全是您主要关心的问题,为什么不使用 HTTPS?浏览器不会缓存通过 HTTPS 接收的内容(或仅将其缓存在内存中)。
模仿这一点的一种棘手方法是在引用站点上的任何静态内容时将 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.
如果你在谈论 asp.net 缓存对象,你可以使用这个:
For Each elem As DictionaryEntry In Cache
Cache.Remove(elem.Key)
Next
从缓存中删除项目,但这可能不是您尝试完成的全部内容。