我是一名 Web 开发人员,曾使用过 PHP 和 .NET。有一年多的网络工作经验,对浏览器的缓存功能还不是很了解,希望这里的网络高手可以帮到我。我心中的问题是:
- 浏览器实际上是如何缓存东西的,它是否请求查看缓存的文件是否在服务器上发生了变化,
- 什么是开发人员充分利用浏览器缓存的理想方式,同时也能够毫不费力地在网站上推送新的更改。我认为如果浏览器以某种方式缓存我的 CSS、JS 和图像,然后每次都检查它们对服务器的修改,这可以解决问题。但我不知道该怎么做。
我是一名 Web 开发人员,曾使用过 PHP 和 .NET。有一年多的网络工作经验,对浏览器的缓存功能还不是很了解,希望这里的网络高手可以帮到我。我心中的问题是:
这篇博文可能会有所帮助:
http://blog.httpwatch.com/2007/12/10/two-simple-rules-for-http-caching/
它解释了如何使用缓存,同时保持在需要时进行更改的能力。
对于 CSS 文件,一个标准的“解决方法”是逐步向链接添加参数:
<link rel="stylesheet" href="http://mysite.com/styles.css?v=1">
<link rel="stylesheet" href="http://mysite.com/styles.css?v=2">
...
这将强制浏览器重新加载文件。
如果您使用的是服务器端语言,您可以强制浏览器重新下载文件。
<script src="script.js?<?= uniqid(); ?>">
<img src="myfile.jpg?<?= uniqid(); ?>">
但是如果您想拥有一个更快的站点,缓存是很好的,在您开始禁用之前请记住,任何缓存都不必再次下载。
还有另一种方法可以控制需要缓存的内容,HTML5 应用程序缓存,将缓存逻辑转储到清单文件中。因此,在清单文件本身更改之前,不会再次下载清单中的每个文件。
请记住,如果您更改了 JS、CSS、图像文件中的某些内容,并且您需要将该更改推送给经常访问者,您还需要更新您的清单文件。你可以像发布日期一样添加,这样浏览器就知道它是一个新的清单,它会再次下载所有内容。