26前端成长日记 - 缓存

114 阅读1分钟

Cache-Control

如果服务端在响应头中设置了 Cache-Control 在规定时间内前端将不会向服务端发起请求,而直接去读取缓存;因此可以加快访问速度

response.setHeader('Cache-Control','Max-age: 315360000')

Max-age 设置的时间已秒为单位

更新资源

  • 在 URL 后面加查询参数,比如:url/?v=1.0
  • 更改 URL
  • 更改文件名

Etag

Etag 是基于 md5 摘要算法的,如果发现文件计算出来的字符串与之前一样就不下载资源

因为需要和服务器中的文件进行对比,所以 Etag 每次都要发送请求。一旦你改了资源浏览器就会下载资源

response.setHeader('ETag', fileMd5)

Expires

response.setHeader('Expires','Wed, 21 Oct 2015 07:28:00 GMT')

Expires 设置的到期日期是本地时间,所以不靠谱;而且设置了 Cache-Control,Expires 将会被忽略