我知道浏览器可以使用图像中的 src 或 HTML 中的脚本标记来缓存文件。所以我们需要更新资源名称或散列它,以便浏览器将被强制再次下载它,以便它可以在本地更新。
例如
<img src="cat.jpg">
<script src="my-script"></script>
<!-- update names so browser can download these sources instead of using what's in cache -->
<img src="cat.jpg-updated">
<script src="my-script-updated"></script>
虽然我还不清楚具体情况,想知道是否有人可以为我澄清几点。
- 浏览器是否也在 anchor 标记中缓存 HTML 文档(我想是的,但只是希望这一点也得到澄清)
- 如果使用 Angular 等框架在页面上动态生成 HTML 标记,他们是否还会将资源添加到缓存?
- 如果浏览器在 javascript 代码(例如 fetch)中解释资源,是否也会尝试将资源添加到缓存?
我正在尝试澄清这些要点,以便我知道是否还应该担心对我的编程代码中提供的路径进行散列处理。谢谢
更新对第一点的说明:
我对浏览器缓存还是个新手,所以我不知道静态文档 html 页面是否也被浏览器捕获(我感觉是这样,因为有些浏览器有离线模式,虽然在这里我不知道如何浏览器会处理重新下载资源,因为我相信你不需要每次都更新 url)
例如
<a href="http://some-static-website.com/page">Go to static Page</a>
最佳答案
基本上是的。如果您要求浏览器请求 URL,通过在地址栏中键入、单击链接、src
、fetch
等,它会尝试查找缓存版本。它还取决于服务器的设置方式,但大多数服务器都启用了一些基本的缓存,如果您的服务器正在缓存某些内容,您可能可以假设所有内容的行为都是相同的。
对于动态生成的 HTML,浏览器不会缓存生成的 HTML,但会缓存生成它的脚本。
关于javascript - 阐明浏览器是否还缓存通过 anchor href、动态生成的 html 和 javascript fetch?cache 获取的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49964179/