2 个回答

就拿前端SPA部署来说,打包过后的文件为index.html,css,js,img文件等,
1)index.html应该不缓存,保证index.html每次都从服务器获取最新的;
2)js、css、img等文件会在打包后生成对应的hash标识,所以这些文件可以设置一个比较长的缓存时间,比如1年;
index.html为什么不该缓存呢?因为他是应用的入口,只有加载它之后才会加载它引用的资源文件,如css、js、img等,所有要保证index.html不被缓存,这样你才能保证本地资源版本跟服务器一致。至于css、js等资源文件如果重新打包那么他们的文件名也会根据内容发生变化(contentHash),都是不同的文件了也就不担心缓存带来的副作用了。

缓存能起到什么作用?

  1. 降低带宽压力

    1. 一个全量 echarts 多大?每次刷新页面都会加载
  2. 降低服务器处理压力

    1. 如果是一些 config 配置接口,及时逻辑很少,也会调动程序处理。
    2. gzip 等编解码

既然你知道了为什么做,那么这个当然是越快越好,最好都缓存起来才好

  1. 能做强制缓存就强制缓存
  2. 不能做强制缓存就做协商缓存
  3. 无缓存的情况下,看看服务端能对高频文件做缓存嘛。

但是事情往往没有这么简单,我们一般是 html 不缓存,资源强缓存(js、css,通过 hash 名来更新文件)。

接口的话一般不会做强缓存,配置啥的可以考虑一下协商缓存。逻辑处理之类的必须要准确数据,也就不会做缓存。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏