使用Vite启动项目时引入5M公共文件加载慢的解决方案咨询
Vite项目大JS文件导致启动/重载慢的解决方案
1. 引入CDN能否缩短耗时?
完全可以。
你现在把5M的JS放在public目录下,dev模式下Vite虽不会编译它,但每次启动或重载时,本地服务需要处理这个大文件的静态资源请求,加上本地读取和传输的开销,会拖慢整个流程。换成CDN引入后,浏览器直接从CDN节点拉取资源,不仅不用占用本地Vite服务的资源,CDN的缓存机制还能让后续页面加载更快,能明显把启动/重载的耗时降下来。
2. 是否可以在进入页面时再加载该JS文件?
当然可以,推荐几种实用的实现方式:
- 原生JS动态加载:在页面加载完成后再注入脚本,比如:
这样页面核心内容先加载,大JS文件在后台异步加载,不会阻塞页面初始化,也不会影响Vite的启动/重载速度。document.addEventListener('DOMContentLoaded', () => { const script = document.createElement('script'); script.src = '/your-large-script.js'; // public目录下的文件直接用根路径 script.onload = () => { // 脚本加载完成后的回调,比如初始化逻辑 }; document.body.appendChild(script); }); - 框架内动态加载(以Vue为例):如果是Vue项目,可以在组件的
mounted钩子中执行上面的动态加载逻辑,或者根据路由进入时机加载——比如在路由的beforeEnter钩子中判断,当进入目标页面时再加载该脚本。
内容的提问来源于stack exchange,提问作者jz lee
相关产品推荐
相关产品推荐

