我应该将所有JavaScript源复制到一个文件中吗?

nic*_*ish 8 javascript performance loading

在当前的Web项目中,我使用了几个jQuery插件并在关闭body标签之前初始化它们.我的问题是,从加载时间/性能的角度来看,我最好将所有这些初始化并将它们复制到一个外部化的js文件中吗?插件在网站的所有页面中以相同的方式进行初始化,因此看起来加载一个,集中文件最好,不是吗?感谢您的任何反馈.

小智 6

这一切都取决于你正在开发什么,但这里有一些经验法则.

HTTP请求意味着开销(特别是通过HTTPS),所以尽量少做,对于移动来说这是至关重要的.但有一些例外; 延迟加载应用程序初始化时不需要的JavaScript文件有时是智能的,因此它们在真正需要时进行缓存,使用CDN进行流行的库有时可以通过paralel下载获得极大的性能提升.

保持下载尽可能小,因此缩小所有JavaScript和CSS,有些甚至缩小HTML.

确保正确设置缓存标头(有些将它们设置为一年或更长),并且在部署新版本的脚本时,将脚本元素的src属性附加一个版本号来计算缓存,例如: <script src="myapp.js?v=2"></script>

有时感知表现优于真实表现,意味着; 加载和呈现HTML比初始化的应用程序更重要.这可以通过异步加载JavaScript文件来完成(通过像Google一样使用JavaScript插入脚本元素,或者使用为您执行此操作的脚本加载器).但这会带来新的挑战,例如加载文件的执行顺序或在脚本文件完全加载和解析之前与页面交互.

最后,它在很大程度上取决于您的在线应用程序或网站的体系结构以及与之交互的内容是什么或应该是什么,请通过提供一些示例进一步详细说明?

PM5544.