清缓存的目的是什么,如何实现?

本贴最后更新于 2151 天前,其中的信息可能已经时移俗易

2018-12-15

缓存及优点

浏览器的缓存可以临时存储一些文件,因此当页面切换或者再次加载相同页面时就不需要去重新下载这些文件。服务端可以设置头部告诉浏览器在一定时间内存储这些文件。这样不仅可以大幅度加快网站的速度还可以节省你的带宽。

缓存带来的问题

然而当开发者对站点进行修改时就可能会带来一些问题:某些用户可能仍在访问那些修改之前的文件。这样就会导致那些用户使用以前的功能或者访问一个坏了的站点(当服务端渲染的页面元素被删除、移动或重命名后,那些被缓存的 CSS 和 JavaScript 文件对这些元素的操作就会出现错误)

解决方案

解决缓存的关键就是强制让浏览器下载最新的文件。这只需要给那些旧的文件一个新的名字,或者修改服务端的头部。

比较简单常用的技术就是在文件结尾添加一个查询字符串,使其强制让浏览器重新下载新的文件。如下所示:

src="js/script.js"
src="js/script.js?v=2"

这样一来,在不需要修改文件名的前提下,浏览器就会将其视为不同的文件。

扩展

  • 服务端头部相关设置为 ETag
  • Service WorkersCache Storage
  • 网站的速度很大程度上会影响 SEO 评分
  • 缓存和命名被誉为编程届的两大难题
  • 使用 webpack 相关的项目在框架层面上已经比较完美的自动解决此问题

返回总目录

每天 30 秒

  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    107 引用 • 295 回帖
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 383 回帖 • 6 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 13297096023 1 评论

    这个设置查询字符串是服务端设置吗

    这个文章时间有点旧了,目前一般使用打包工具生成 hash 后缀。
    Vanessa