AngularJS应用程序的初始页面加载性能



我正在使用使用WebPack捆绑资源的AngularJS应用程序。当前,我们正在创建一个包含CSS的单个应用程序。app.js的大小约为6MB。如果我们将app.js分解为多个块,则可以改善页面性能。我的同事说服我,如果我们将单个JS文件分为2或3,那么页面加载时间将增加两次或三次。真的是真的吗?我记得读过一些拥有一个文件的地方比多个文件更好。我真的不记得现在的原因。我真的需要打破app.js文件以进行页面性能吗?或我可以在这里应用哪些其他选项?

单个文件更好,因为它需要更少的连接(意味着较少的开销),但这在谈论&lt时确实可以忽略不计;5个文件。当文件的一部分分开时,您确实会获得分别缓存文件的能力,这通常是一个巨大的胜利。因此,我建议将文件分配在逻辑可缓存的部分中(例如供应商代码和自定义代码)。

还要注意,如果客户端和服务器支持http/2,则由于http/2支持连接重复使用,因此连接越少。

请注意,初始加载时间没有真正的区别,因为在这种情况下,所有文件都需要下载。

一个文件通常意味着更好的性能。您还应确保正确缓存此文件(在浏览器侧)并在由Web服务器服务时进行GZ。

我在Chrome(Mac 54.0.2840.98(64位))中进行了实用测试,以证明将巨大的JS文件分解为许多人是否确实有绩效提高。我创建了一个10MB JS文件,并制作了三个副本。串联了所有3个复制并创建了一个30MB文件。我测量了单个文件所花费的时间,该文件使用页面底部的普通脚本标签引用,大约为1分钟。然后,我一个又一个又一个又一个又有20秒的时间来加载所有内容。因此,将巨大的JS文件分解为许多人确实具有性能。但是,没有一个限制。浏览器可以平行下载的文件。

最新更新