为了实现 CSS 缓存机制,大家可以在 HTTP 响应头中设置 Expires、Cache-Control、Last-Modified 或 Etag 等响应头来告知浏览器需要缓存的时间和条件。下面是具体的设置方法:
Expires: Wed, 30 Jan 2021 12:00:00 GMT Cache-Control: max-age=3600 Last-Modified: Fri, 08 Jan 2021 08:30:00 GMT Etag: "80e84a-8c-5a22f7c1"
通过设置 Expires 响应头,浏览器会将相应的 CSS 文件缓存到本地,过期时间为 2021 年 1 月 30 日 12:00:00。如果再次访问该页面,浏览器会在本地缓存中查找对应的 CSS 文件,如果未过期,便直接使用本地缓存。
如果使用 Cache-Control 响应头,可以设置缓存的时间,例如这里的 max-age=3600 表示缓存有效时间为 1 小时,如果再次访问该页面,浏览器会检查本地缓存是否过期,如果未过期,则直接使用本地缓存。
如果使用 Last-Modified 或 Etag 响应头,浏览器会在本地缓存中保存 CSS 文件的时间戳或哈希值,下次访问页面时,浏览器会先询问服务器该文件是否发生了修改,如果未发生修改,则直接使用本地缓存。
除了服务器端设置响应头,大家还可以在 HTML 文件中引入 CSS 文件时,使用版本号等方式主动控制缓存。例如:
<link rel="stylesheet" type="text/css" href="style.css?v=1.0">
通过在 href 属性后添加版本号,例如上面的 v=1.0,可以让浏览器自动更新缓存。每次 CSS 文件发生修改时,只需要更新版本号,浏览器就会重新请求该文件,而不是使用缓存。
总之,合理使用 CSS 缓存机制可以显著提升页面的加载速度,同时也需要注意缓存的有效期和更新方式,避免出现耗时长、页面错乱等问题。