阅读 84

工程化知识卡片 002:现代前端应用的 HTTP 缓存配置

大家好,我是山月。

这是我在掘金发表的前端工程化知识卡片集合 2/36

关于 http 缓存配置的最佳实践为以下两条:

  1. 文件路径中带有 hash 值:一年的强缓存。因为该文件的内容发生变化时,会生成一个带有新的 hash 值的 URL。前端将会发起一个新的 URL 的请求。配置响应头 Cache-Control: public,max-age=31536000,immutable

  2. 文件路径中不带有 hash 值:协商缓存。大部分为 public 下文件。配置响应头 Cache-Control: no-cacheetag/last-modified

但是当处理永久缓存时,切记不可打包为一个大的 bundle.js,此时一行业务代码的改变,将导致整个项目的永久缓存失效,此时需要按代码更新频率分为多个 chunk 进行打包,可细粒度控制缓存。

细粒度缓存控制

  1. webpack-runtime: 应用中的 webpack 的版本比较稳定,分离出来,保证长久的永久缓存

  2. react/react-dom: react 的版本更新频次也较低

  3. vendor: 常用的第三方模块打包在一起,如 lodashclassnames 基本上每个页面都会引用到,但是它们的更新频率会更高一些。另外对低频次使用的第三方模块不要打进来

  4. pageA: A 路由页面,当 A 页面的组件发生变更后,它的缓存将会失效

  5. pageB: B 路由页面

  6. echarts: 不常用且过大的第三方模块单独打包

  7. mathjax: 不常用且过大的第三方模块单独打包

  8. jspdf: 不常用且过大的第三方模块单独打包


作者:shanyue
链接:https://juejin.cn/post/7015212675474915336


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐