有没有办法closures特定网站的客户端浏览器caching?

这是一个浏览器不可知的问题,但我们正在testing与IE9。

我们的用户访问的一个networking应用程序正在被随机caching,并且在他们应该更改时没有显示出来。 没有其他网站有这个问题,我们已经与谁声称这不是发生在其他任何人的供应商。 如果我们使用开发工具栏并select“强制从服务器刷新”,所有更新都正确。

而不是真正解决这个问题,我们的想法是通过禁用这个特定网站的caching来解决这个问题。 但是,我们不知道如何。

禁用浏览器caching的唯一正确方法是通过webapp本身的HTTP头。 对于任何2000年以后的浏览器,单独使用HTTP 1.1“Cache-Control”头文件就足够了。 但是为了获得额外的保护,服务器可以同时发送HTTP 1.1“Cache-Control”和HTTP 1.0“Expires”头文件 。

处理caching失效的方法有时候是一种黑客行为 ,在服务器的URL中是一个“caching”string 。 cachebuster通常是基于时间戳的,并且作为查询string添加到每个HTML LINK中,以使URL唯一并且仅被使用一次。 就像http://example.org/filename.html?cb=<timestamp+random_value> 。 这是丑陋的,并没有做任何HTTP头做不了多less。 但是,它可以用作受限用户(Intranet上的fx)的黑客攻击,或者作为附加的保护层以及正确的HTTP头文件。

AFAIK没有办法有select地禁用caching 的一个单一的站点只能从Internet Explorer中。 一个(血腥复杂的)解决scheme可能是将Varnishcaching安装在局域网上的中介caching中,将Internet Explorer设置为使用Varnish作为HTTP代理,并使用Varnish上的VCL语言重新为此特定站点重写HTTP头。

老实说,我认为你的供应商在这里犯了一个错误。 我build议安装IE的Fiddler2或Firefox的Firebug ,并查看Web应用程序发送的实际HTTP头。 将其与Mark Nottingham的caching教程相关联,我已经将其链接到了上面 – 我在猜测头允许caching,或者至less不明示禁止caching。

确保你设置了正确的过期标题。 如果你把时间放在过去,内容将不会被caching。 检查运行IS9的工作站上的时间/date。 另见: http : //www.mnot.net/cache_docs/

如果您无法修改相关网站的内容,则可以使用代理服务器来修改浏览器中的内容。 这将允许您更改过期的标题。

如果网站允许您通过HTTPS连接,则取决于您的浏览器,您可以禁用cachingencryption页面。

在IE中,这可以这样做:

您可以在Internet选项 – >高级 – >安全 – >不要将encryption的页面保存到磁盘中检查IE的设置。

 <meta http-equiv="PRAGMA" content="NO-CACHE"> 

http://www.zann-marketing.com/developer/20051018/stop-browser-caching-using-meta-tags.html

您可能希望考虑在URL栏中使用随机密钥,这也会阻止浏览器中的caching。