我有一个JSF应用程序,它有几个JSF页面。当我点击页面加载一个新页面时,我等待1-2秒来加载一个新页面,我看到白色屏幕。我如何解决这个缓慢加载?例如,我可以在加载新页面时在屏幕中央显示“正在加载...”并刷新屏幕而不显示白色显示? 什么是最佳实践?缓慢加载JSF页面
回答
听起来像一个性能调试问题。
先看看慢位是哪里。在Chrome,Safari或Firefox(也可能是IE)中,您可以访问调试器控制台。
在Chrome中,将其拉起并单击网络选项卡。刷新页面。您将看到的是页面上需要网络连接加载的所有资源的瀑布图。它也会为每个人提供时间。
假设你看到这样的内容:
index.html ########
script1.js ####
script2.js ##########
img1.png #####
img2.png #########
img3.png ######
如果通过对script2.js年底看的index.html,你可以看到这些是如何发生的线性此起彼伏。这被称为阻塞。
对于index.html,这是您的初始页面加载。根据文档的大小,这可能非常小或非常大。几乎所有的后缀(script1 & 2和imgs)只在index.html加载后才开始加载。这是因为index.html必须先由浏览器解析,然后才能开始加载其他所有内容。
如果index.html显示大约需要2秒加载,那么这意味着您的问题很可能在服务器端。可能是页面生成需要很长时间,或者您的Web服务器负载很重,或者连接速度非常慢。此时,您需要进行一些服务器端测试以查看问题出在哪里。
现在让我们回到示例图。
关于script1.js和script2.js如何被阻塞,这意味着它们的所有JavaScript都被加载,解析并运行。 Javascript是单线程的,脚本标记中的代码必须完全由JavaScript解释器解析并加载,然后浏览器才能开始处理下一个脚本或加载下一个资源。
有很多优化JavaScript的技术来快速加载。这是一个不同的话题,但是'优化JavaScript加载'是一个开始学习更多东西的好地方。最后,某些类型的资源(如图像)固有地并行加载。图中显示的是img1-3全部同时加载。这表示每个资源负载的开始都在同一点排队。它们可能会或可能不会在同一点结束,如在img2中。 Img2是一个更大的图像,所以加载时间更长。
关于浏览器如何加载资源还有另一个有用的事情,它的浏览器对它们可以进行的同时连接的数量有限制。在过去,IE6每域限制2个同时连接。该图可能如下所示:
img1.png #####
img2.png #########
img3.png ######
img4.png ######
注意其中img4开始加载。 Imgs 1-3正在加载,但img4被推迟到img1完成加载。这是因为只有2个打开的连接,img4必须等到img1完成。同样,img2的大小并不重要,这只是基于可用的连接。
幸运的是,现在所有的浏览器都允许更多的同时连接,所以这不是一个问题。尽管如此,它还是需要注意的。
解决此问题的一种方法是加载来自不同域或子域的资源。例如,如果您的网站图像非常大,则可以设置多个可从中加载图像的子域。可能是这样的:
sub1.domain.com/img1.png
sub1.domain.com/img2.png
sub3.domain.com/img3.png
sub4.domain.com/img4.png
sub1.domain.com/img5.png
sub2.domain.com/img6.png
sub2.domain.com/img7.png
这可以让浏览器“轮询”请求并加载更多的资源,而无需等待很长时间。
无论如何,希望这有助于。
对于那些开始了解这一点的人来说,这些信息很棒。在index.xhtml需要2秒加载的情况下,你有什么建议可以在哪里寻找问题的根源?我已经检查了从数据库加载数据所用的时间,大约是0.1秒,所以它不应该成为问题。 – Ced
- 1. JSF2缓慢页面加载
- 2. aspx页面加载缓慢
- 3. Phantomjs缓慢加载页面
- 4. 缓慢的nginx页面加载
- 5. 随机缓慢加载页面
- 6. 日志缓慢加载页面
- 7. PHP/MySQL - 页面/排序加载缓慢
- 8. 页面加载非常缓慢
- 9. Episerver CMS 6缓慢页面加载
- 10. 缓慢页面加载页面转换Silverlight Windows Phone
- 11. jquery - 缓慢加载页面并加载gif效果
- 12. 加载外部JSF页面
- 13. 缓冲视频导致页面加载缓慢
- 14. 等待慢速JSF页面
- 15. RSelenium:刮动载入缓慢的动态加载页面
- 16. 将平面设计导致页面加载缓慢
- 17. 在IE中缓慢卸载页面
- 18. MySQL - 添加多个ORDER BY后页面加载速度缓慢
- 19. 自定义Sharepoint列表添加/编辑页面加载缓慢
- 20. Tableview加载缓慢
- 21. Titanium:ScrollView加载缓慢
- 22. ckeditor缓慢加载
- 23. AVPlayer缓慢加载
- 24. 缓慢加载UiTableView
- 25. 缓慢加载XML
- 26. UITabBarController缓慢加载
- 27. 首页加载速度缓慢PHPBB 3.0.11
- 28. 桌面视图图像加载缓慢
- 29. Rails管理面板加载缓慢
- 30. 为什么我的页面加载缓慢
你推荐什么网络技术来提高性能? – user1285928
我使用Spring并使用Velocity生成动态HTML。 – duffymo
您可以使用myfaces(而不是mojarra)。而hibernate-ehcache机制对于性能调整非常有用。我有同样的问题。页面加载3-4秒。但现在平均使用hibernate-ehcache和myfaces 700ms。 – erginduran