Vue 项目更新,浏览器不需强制刷新就可更新版本! 防止缓存

##浏览器渲染流程

1. 解析 HTML 文件,构建 DOM 树,同时浏览器主进程负责下载 CSS 文件

2. CSS 文件下载完成,解析 CSS 文件成树形的数据结构,然后结合 DOM 树合并成 RenderObject 树

3. 布局 RenderObject 树 (Layout/reflow),负责 RenderObject 树中的元素的尺寸,位置等计算

4. 绘制 RenderObject 树 (paint),绘制页面的像素信息

5. 浏览器主进程将默认的图层和复合图层交给 GPU 进程,GPU 进程再将各个图层合成(composite),最后显示出页面

– 关键资源的数量: 可能阻止网页首次渲染的资源。

– 关键路径长度: 获取所有关键资源所需的往返次数或总时间。

– 关键字节: 实现网页首次渲染所需的总字节数,等同于所有关键资源传送文件大小的总和。

优化 DOM

– 删除不必要的代码和注释包括空格,尽量做到最小化文件。

– 可以利用 GZIP 压缩文件。

– 结合 HTTP 缓存文件。

当前 VUE 项目更新

我理解的是: vue 属于单页面应用

webpack 打包后的 chunk 后面都会添加 hash 值 保证了文件的最新

但如果 index.html 文件发生了缓存

项目也还是旧的

只有保证 index.html 是最新的 整个项目才是最新的

因为是从这个 html 开始解析

所以 在这个文件里面添加

    <!– 禁止index 页面的缓存 –>

    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />

    <meta http-equiv="Pragma" content="no-cache" />

    <meta http-equiv="Expires" content="0" />

 

    是保证这个页面禁止缓存

    发新版之后的,只需要重新加载下当前项目

    浏览器普通刷新就可


版权声明:本文为qq_33878858原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。