【发布时间】:2016-07-30 19:08:08
【问题描述】:
在我的 Vaadin 7 应用程序中,我有一个沉重的看法。服务器端工作得非常快——我的 init() 方法中的所有逻辑都需要大约 100-150 毫秒,但在浏览器中呈现需要很多时间(取决于组件的数量)。现在大约需要 10 秒才能在 Google Chrome 中显示此视图。
我正在寻找一种方法来优化此视图的性能。我找到了LazyLoadWrapper,但它看起来有点过时了。
是否有任何类似于 Vaadin 7.6 的此组件以改善用户体验和视图渲染性能?
更新
这是一个演示项目Vaadin Demo Project,可以重现此性能问题。
为了启动这个应用程序,请简单运行 Maven 命令:
mvn clean install
从项目文件夹中编译源代码和 Vaadin 主题。
然后运行com.techbook.ui.Application类(该类包含main方法),应用程序将在Embedded Tomcat 8上启动,然后请访问以下url:
http://127.0.0.1:8080/vaadin-ui/#!decisions/123/Name
com.techbook.ui.view.decision.DecisionView - 是一个提到性能问题的视图。
【问题讨论】:
-
您的视图包含哪些组件?还有多少?根据我的经验,Vaadin 的设计目的不是包含大量组件,尤其是在多个(嵌套)布局中。尝试减少组件/布局的数量。
-
我在我的问题中添加了截图。如您所见,我有一些带有嵌套组件的 GridStack。我需要在主 GridStack 中处理约 80 个元素,但在这种情况下,我的视图加载约 15-20 秒......现在我正在考虑引入一些延迟加载
-
你可以检查如果只有一半的元素被渲染会发生什么。那么浏览器的时间会减少吗?我不知道如何实现组件的延迟加载(除了你提到的附加组件)。
-
是的,如果主 GridStack 中有大约 10 个元素,则渲染时间非常接近正常
-
您可以将问题发布到 GridStack 附加组件。希望他们可以帮助您。