Html 远程清除IE缓存
我们最近推出了一个新的CMS解决方案。但是,我们没有意识到,默认情况下,此解决方案不会向HTML页面添加无缓存标头等 虽然我们现在已经解决了这个问题,但是我们使用IE的访问者尤其拥有大量HTML页面的缓存(包括对旧CSS和JS文件的引用)Html 远程清除IE缓存,html,caching,browser,Html,Caching,Browser,我们最近推出了一个新的CMS解决方案。但是,我们没有意识到,默认情况下,此解决方案不会向HTML页面添加无缓存标头等 虽然我们现在已经解决了这个问题,但是我们使用IE的访问者尤其拥有大量HTML页面的缓存(包括对旧CSS和JS文件的引用) 对于那些在上线后的第一个月访问该网站的用户,有没有一种方法可以破坏缓存?因为我担心我们的设计和JS功能无法成功推进,因为人们使用的是旧的缓存版本。假设有一个中心URL生成功能,跟踪它并始终将?\u version=2(或者&\u version=2,如果URL
对于那些在上线后的第一个月访问该网站的用户,有没有一种方法可以破坏缓存?因为我担心我们的设计和JS功能无法成功推进,因为人们使用的是旧的缓存版本。假设有一个中心URL生成功能,跟踪它并始终将
?\u version=2
(或者&\u version=2
,如果URL中已经有问号)附加到所有URL
这对您的web应用程序没有影响(除非它使用_versionget字段),但会模拟所有链接资源的更改URL。由于始终会请求初始URL(例如,
/
),这将使任何浏览器重新下载所有资源。对页面的请求是否通常返回上次修改的标题?这是我有经验的唯一可靠的破缓存方法
大多数浏览器在缓存某些内容时,如果未修改,则会发送,因为请求头(除非此CMS上的默认缓存行为是设置显式缓存过期日期,这是极不寻常的)。因此,您需要做的就是在响应中发出一个Last Modified:[date you added no cache headers]
头,一个行为正常的HTTP服务器将向客户端发送完整的更新HTML页面
虽然这种半身像适用于CSS和JS等文件,但如果每次请求都重新下载HTML,则这种半身像也适用。IE(到目前为止我已经测试了6-8)似乎没有重新请求它缓存的HTML。也许这是一个“代理背后”的问题,但我知道IE会像Jon Skeet的大脑一样缓存—所以我认为它更像是一个浏览器问题—还尝试了IIS重写规则—附加查询字符串。但由于浏览器没有重新请求URL的标题,因此它看不到要重定向的位置
标题。PS-如果您的URL使用查询参数-请确保更新Google/Bing网站管理员工具,以便它们不会列出您的查询字符串附加URL:)任何特定版本或所有版本?我至少关心IE7和8,尽管这不是我的问题,这确实让我思考-我发现我的问题是我的缓存控制
头被设置为无缓存
。。。问题是我们的办公室(以及我们的大多数客户群)都支持代理——我只是将缓存控制更改为私有,最大年龄=0
。我们还有Expires
作为-1
。