这是一个与浏览器无关的问题,但我们正在使用IE9进行测试.
我们的用户访问的其中一个网络应用程序正在被随机缓存,并且应该没有显示更改.没有其他网站有这个问题,我们已经与声称没有发生在其他任何人身上的供应商合作过.如果我们使用开发人员工具栏并选择“从服务器强制刷新”,则一切都会正确更新
解决方法
禁用浏览器缓存的唯一正确方法是来自webapp本身的HTTP标头.对于任何2000年后的浏览器,HTTP 1.1“Cache-Control”标题应该足够了.但为了额外的保护,服务器可以发射
HTTP 1.1 “Cache-Control” and HTTP 1.0 “Expires” headers together.
处理缓存失效的hack’ish但有时看到的方法是来自服务器的URL中的“cachebuster”字符串.缓存器通常基于时间戳,并作为查询字符串添加到每个HTML LINK,以使URL唯一且仅使用一次.像http://example.org/filename.html?cb=\u0026lt;timestamp random_value>这样的东西.这很丑陋,并且没有做任何事情,HTTP标头不会做得更好.但它可以用作有限受众(内联网上的fx)的黑客攻击,或者作为额外的保护层以及适当的HTTP标头.
AFAIK无法从Internet Explorer中有选择地禁用单个站点的缓存.一个(血腥复杂的)解决方案可能是在您的LAN上安装Varnish cache作为中间缓存,将Internet Explorer设置为使用Varnish作为HTTP代理,并使用VCL language on Varnish仅重新编写此特定站点的HTTP标头.
老实说,我认为你的供应商在这里犯了一个错误.我建议安装Fiddler2 for IE或Firebug for Firefox,然后查看webapp发送的实际HTTP头.将其与我已经链接到上面的Mark Nottingham’s caching tutorial相关联 – 我猜测标题允许缓存,或者至少没有明确禁止缓存.