Session 清除所有网站缓存?

Session 清除所有网站缓存?,session,caching,browser-cache,Session,Caching,Browser Cache,是否可以清除所有站点缓存?我希望在用户注销或会话过期时执行此操作,而不是指示浏览器在每次请求时不缓存。据我所知,无法指示浏览器清除为您的站点缓存的所有页面。作为网站作者,您对页面缓存的唯一控制权发生在浏览器尝试访问该页面时。您可以使用Expires标题指定页面的缓存版本应在某个特定时间过期,但即使如此,浏览器也不会在该时间从缓存中清除页面。我当然希望不会-这将使网站对客户端机器具有破坏性的能力 如果您谈论的是asp.net缓存对象,您可以使用: For Each elem As Dict

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

据我所知,无法指示浏览器清除为您的站点缓存的所有页面。作为网站作者,您对页面缓存的唯一控制权发生在浏览器尝试访问该页面时。您可以使用
Expires
标题指定页面的缓存版本应在某个特定时间过期,但即使如此,浏览器也不会在该时间从缓存中清除页面。

我当然希望不会-这将使网站对客户端机器具有破坏性的能力

如果您谈论的是asp.net缓存对象,您可以使用:

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

从缓存中删除项目,但这可能不是您试图完成的全部任务。

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

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


话虽如此。。。这是一种黑客行为,我不建议你继续下去。。您希望用户的缓存在会话过期后被清除的原因是什么?可能有更好的解决方案适合您的情况,而不是您目前所要求的。

对此不确定:请看这个问题:是的,我同意这取决于浏览器设置。IE和Firefox中的默认设置禁止在磁盘上缓存HTTPS内容。我想是这样的,但希望有一种方法可以一次清除所有内容。感谢您的确认。类似window.navigator.removeCache()的东西似乎不会太具有破坏性,假设它只能清除该页面的缓存对象(从技术上讲,它甚至不需要从硬盘上删除任何内容)最坏情况会导致用户再等待几秒钟以获取新内容。但是,在产品升级过程中为您通常希望缓存的内容避免缓存问题的价值是值得的。@Marcus:@Thomas:为您自己的页面清除缓存是一个完全不同的问题。理智的人。