Answers:
禁用浏览器缓存的唯一正确方法是来自webapp本身的HTTP标头。仅HTTP 1.1“ Cache-Control”标头就可以满足任何2000年以后的浏览器的要求。但是,为了获得额外的保护,服务器可以同时发出HTTP 1.1“ Cache-Control”和HTTP 1.0“ Expires”标头。
处理缓存无效的一种骇人听闻但有时也可以看到的方法是服务器中URL中的“ cachebuster”字符串。缓存无效化器通常基于时间戳,并作为查询字符串添加到每个HTML LINK,以使URL唯一,并且仅使用一次。有点像http://example.org/filename.html?cb=<timestamp+random_value>
。这很丑陋,并且没有做任何HTTP标头做得更好的事情。但是它可以用作针对特定受众的黑客(Intranet上的FX),或与适当的HTTP标头一起用作附加保护层。
AFAIK无法 仅从 Internet Explorer中选择性地禁用单个站点的缓存。一种(复杂的解决方案)解决方案是将Varnish缓存安装为LAN上的中间缓存,将Internet Explorer设置为将Varnish用作HTTP代理,并在Varnish上使用VCL语言仅针对该特定站点重写HTTP标头。
老实说,我认为您的供应商在这里犯了一个错误。我建议安装IE的Fiddler2或Firefox的Firebug,并查看webapp发送的实际HTTP标头。将其与我上面已经链接到的Mark Nottingham的缓存教程相关联-我猜测标头允许缓存,或者至少不表现性地禁止缓存。
确保设置正确的到期标头。如果您将时间过去,则不会缓存内容。在运行IS9的工作站上检查时间/日期。另请参阅:http : //www.mnot.net/cache_docs/
<meta http-equiv="PRAGMA" content="NO-CACHE">
http://www.zann-marketing.com/developer/20051018/stop-browser-caching-using-meta-tags.html
您可能希望考虑使用URL栏中的随机键,这也将防止在浏览器中进行缓存。