3

javascript文件在什么基础上被缓存?假设我从一个站点加载了一个名为“m-script.js”的文件,而在另一个网站上我使用了相同的名称“m-script.js”但内容不同。浏览器会获取新的,还是只查看名称并从缓存中加载它?两个 m-script.js 文件的 url 不同(显然)。
谢谢。

4

3 回答 3

4

如果 url 不同,则不会使用缓存的副本。将发出新请求并下载新文件。

如果从一个网站缓存的 Javascript 文件在另一个网站上使用,浏览器将存在巨大的安全性和可用性问题。

于 2012-05-30T06:01:32.210 回答
2

浏览器通过完整的 URI 缓存文件。

这个线程(如何强制浏览器重新加载缓存的 CSS/JS 文件?)将帮助您理解。

于 2012-05-30T06:01:28.380 回答
1

由于还没有人提到它,因此 HTTP 缓存涉及的不仅仅是 URI。有各种控制进程的标头,例如Cache-ControlExpiresETagVary等。始终保证请求不同的 URI 以获取新副本,但是这些标头可以更好地控制对潜在缓存资源的请求如何发出(或未发出,或发出但接收回 304 Not Modified,或...) .

这是描述该过程的详细文档。您还可以搜索“缓存过期”或“缓存 etag”等更具体的资源。

于 2012-05-31T06:10:18.777 回答