性能优化 · 中级 03
线上发布新版本后,部分用户仍加载旧版 JavaScript 并出现接口字段不兼容。下列哪项是最合理的工程修复方案?
当前入口 HTML 和静态 JavaScript 均通过 CDN 分发;JavaScript 文件名固定为 app.js,二者都设置了较长的强缓存时间。
性能优化中级题库第 3 组,共 12 张卡片。
性能优化 · 中级 03
当前入口 HTML 和静态 JavaScript 均通过 CDN 分发;JavaScript 文件名固定为 app.js,二者都设置了较长的强缓存时间。
合理方案是把入口文档与不可变静态资源采用不同的缓存策略:HTML 需要及时获知最新资源地址,带内容哈希的 JavaScript 则可以长期强缓存。
当只知道未来会访问哪个源、却不知道具体资源地址时,可采用连接层提示。
computed 在首次被模板读取时执行回调并缓存结果,其依赖只有 price.value 和 count.value。
针对首屏 ES 模块依赖发现较晚的问题,modulepreload 能让浏览器在解析入口模块之前并行获取模块依赖,并按模块加载语义处理资源。
HTTP/2 的多路复用主要改善连接利用率和请求并发,并不会把大量模块自动合并,也不会免除请求头处理、服务端调度、浏览器编译解析和主线程执行成本。
卡顿的直接原因是长时间同步计算占用主线程,使输入、绘制和其他任务无法及时执行。
在 Vue 2 中,大型只读对象若进入响应式观察流程,会带来递归遍历和属性转换成本。
Object.freeze 会让数组不可扩展,并使其 length 等现有属性不能按普通方式修改。
三种提示作用在不同阶段:dns-prefetch 只尝试提前解析域名;
预渲染要求渲染路径在缺少真实用户浏览器环境时仍能安全运行,因此模块求值和通用渲染逻辑不应无条件访问 window、localStorage 等客户端对象。
最合理的做法是在用户进入登录流程、请求即将发生时再建立预连接。
HTTP/2 支持在一条连接上复用多个并发流,传统为突破 HTTP/1.x 每来源连接限制而实施的域名分片通常失去优势。