Javascript Chrome是否违反了缓存标准?

Javascript Chrome是否违反了缓存标准?,javascript,asp.net,google-chrome,caching,Javascript,Asp.net,Google Chrome,Caching,我们注意到Chrome在本地缓存文件,甚至不向我们的服务器发送请求来检查是否有更新版本的javascript文件 Google缓存的js文件的HTTP响应头示例: Accept-Ranges:bytes Access-Control-Allow-Headers:Content-Type Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS Access-Control-Allow-Origin:* Content-Encodin

我们注意到Chrome在本地缓存文件,甚至不向我们的服务器发送请求来检查是否有更新版本的javascript文件

Google缓存的js文件的HTTP响应头示例:

Accept-Ranges:bytes
Access-Control-Allow-Headers:Content-Type
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin:*
Content-Encoding:gzip
Content-Length:5479
Content-Type:application/javascript
Date:Tue, 12 Jan 2016 22:46:07 GMT
ETag:"7d68e1ceb647d11:0"
Last-Modified:Tue, 05 Jan 2016 12:44:25 GMT
Server:Microsoft-IIS/8.5
Vary:Accept-Encoding
x-robots-tag:noindex
Chrome缓存文件是否有效?没有
缓存控制
头或声明文件可以在本地缓存的东西,它只有ETag和Last Modified


顺便说一句

是否有一种方法(可能是一个标题)可以指示Chrome检查缓存文件是否已更改,而不将版本附加到文件名?设置无缓存不是一个选项,因为我确实希望缓存它,但我希望使用ETag和上次修改的头

除非受到缓存控制的特别约束(第14.9节) 指令,缓存系统可能始终存储成功的响应 (参见第13.8节)作为缓存条目,可以在未经验证的情况下返回它 如果是新鲜的,在成功验证后可能会返回

您始终可以使用must revalidate指令

当收到的响应中存在“必须重新验证”指令时 通过缓存,该缓存在条目过时后不得使用该条目 响应后续请求而不首先使用 源服务器


我没有回答主要问题,但你知道这一点吗?也可能相关:@Miquel,是的,我知道开发工具中有这个选项。但我不能也不想让我的用户使用它并清除我网站的整个缓存…嗯。。。我很好奇,为什么在规范说缓存应该不会缓存响应,而没有迹象表明响应可以缓存之前,您就停止引用了。“如果没有缓存验证程序,也没有与响应关联的显式过期时间,我们不希望缓存它,但某些缓存可能会违反此预期”