优化JavaScript性能的核心是“少加载、快执行、按需用”:精简压缩代码、合理使用defer/async/import()、避免DOM频繁操作、工程化拆包与缓存。

优化 JavaScript 性能、减少加载时间,核心是“少加载、快执行、按需用”。重点不在写得多炫,而在让浏览器更省力、更聪明地处理代码。
精简并压缩 JS 文件
体积越小,下载越快,解析也越快。上线前务必做两件事:
- 删除无用代码(包括 console、debugger、注释、未使用的函数或变量)
- 使用工具自动压缩:Terser(Webpack/Vite 默认集成)、UglifyJS 或在线压缩器,启用 mangling 和 compress 选项
- 开启 Gzip 或 Brotli 压缩(服务端配置),通常能再减小 60%–70% 体积
合理使用加载方式
别让 JS 阻塞页面渲染。关键看它要不要立刻运行:
-
非首屏/非交互逻辑:用
defer(保持顺序,不阻塞 HTML 解析,DOMContentLoaded 前执行) -
完全独立、无依赖的脚本:用
async(不保证顺序,HTML 解析中异步下载并立即执行) -
首屏不需要的大型库(如图表、编辑器):动态 import() 懒加载,例如
const chart = await import('echarts')
避免运行时性能陷阱
加载快了,执行也不能拖后腿:
立即学习“Java免费学习笔记(深入)”;
- 减少 DOM 频繁操作:批量修改用 DocumentFragment,或先设
display: none再改再显示 - 防抖节流处理高频事件(resize、scroll、input)
- 用
for替代forEach(微优化,大量循环时明显);避免在循环里写正则字面量或新建闭包 - 大数组/对象操作前考虑是否可分片(
setTimeout或requestIdleCallback)
利用现代构建与缓存策略
工程化手段让优化可持续:
- 启用 Webpack/Vite 的 code splitting,按路由或功能拆包
- 给 JS 文件加哈希(如
main.a1b2c3.js),配合强缓存(Cache-Control: max-age=31536000),静态资源更新后自动失效旧缓存 - 预加载关键资源:
- 必要时用 Web Worker 处理纯计算任务,不卡主线程
基本上就这些。不复杂但容易忽略——压缩、defer、拆包、缓存,四招落地,多数项目 JS 加载和执行体验就能明显提升。











