我正在使用webpack捆绑资源的AngularJS应用程序中工作。目前我们正在创建一个包含CSS的app.js文件。 app.js的大小约为6MB。如果我们将app.js分成多个块,是否可以提高页面性能。我的同事说服我,如果我们将单个JS文件分解为2或3,那么页面加载时间将增加两次或三次。这是真的吗?我记得读过一些文件比单个文件更好的地方。我现在不记得原因。我真的需要打破app.js文件的页面性能吗?或者我可以在这里适用什么其他选项?angularjs应用程序的初始页面加载性能
1
A
回答
0
我在Chrome(Mac 54.0.2840.98(64位))中做了一个实际测试,以证明在将一个巨大的JS文件分解为许多时是否确实有性能增益。我创建了一个10MB的js文件并制作了三份。连接所有3个复制并创建一个30MB文件。我测量了使用页面底部的普通脚本标记引用的单个文件花费的时间,大约1分钟。然后我一个接一个地参考了3个10MB脚本文件,花了将近20秒来加载所有内容。所以在将一个巨大的JS文件分解成许多文件方面有一个真正的性能提升。但是没有限制。浏览器可以并行下载的文件。
0
单个文件通常意味着更好的性能。您还应该确保该文件在浏览器端正确缓存(在浏览器端)并在您的网络服务器提供服务时进行gzip压缩。
1
单个文件更好,因为它需要更少的连接(意味着更少的开销),但在谈论文件时这实际上可以忽略不计。在分割文件的某些部分时,您可以分别缓存这些文件,这通常是一个很好的胜利。因此,我建议在逻辑上可破解的部分(如供应商代码和自定义代码)中分割文件。
另请注意,如果客户端和服务器支持http/2,则自http/2支持连接重用以来连接数越少原因也消失。
请注意,初始加载时间没有实际差异,因为在这种情况下,无论如何都需要下载所有文件。
相关问题
- 1. AngularJS - 一切都需要加载在初始页面加载?
- 2. 页面加载()或页面初始化()
- 3. 在AngularJS的页面加载中初始化/填充选择框
- 4. 调用页面加载的功能angularjs
- 5. 如何在页面加载后初始化angularjs ng-app
- 6. 初始加载时出现asp.net web应用程序性能问题
- 7. CodeIgniter初始页面加载变量?
- 8. LinkedIn共享按钮只出现在AngularJS应用程序的初始加载
- 9. Enterprise Web应用程序中JSP页面加载的性能问题
- 10. 是否有可能强制页面应用程序的初始配置?
- 11. JQuery函数不能在页面加载时初始化
- 12. 在iPhone应用程序中加载初始数据的想法?
- 13. Grails 2应用程序的初始数据加载
- 14. 修复初始shinyr应用程序加载时的selectInput错误
- 15. 当应用程序运行时初始化XAML页面UWP
- 16. addclass,removeclass在页面初始加载页面时不工作
- 17. 缓慢的Angularjs页面初始化 - HTML加载前的长延迟
- 18. Android预加载页面,以便应用程序加载该页面时可见
- 19. Jquery加载微调/ div(ajaxStart/ajaxStop)不能在初始页面加载
- 20. 如何将脚本加载到XUL应用程序的初始加载后
- 21. 如何将页面添加到现有的AngularJS应用程序?
- 22. 初始应用程序加载标签栏色调闪烁
- 23. 是否有应用程序等待初始XHR加载?
- 24. React/Redux - 调度应用程序加载/初始化
- 25. Angular2应用程序初始加载问题。 typescript.js文件是4.75MB
- 26. 动态加载AngularJS应用程序
- 27. 在初始主页加载jQuery功能只加载
- 28. 转到应用程序时,应用程序配置文件页面? (不能添加应用程序页面?)
- 29. HTML在桌面应用程序加载页面的iframe
- 30. 使用$(window).resize调用函数,并在初始页面加载