【问题标题】:Vaadin 7 component lazy loading for performance improvementVaadin 7 组件延迟加载以提高性能
【发布时间】: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 附加组件。希望他们可以帮助您。

标签: vaadin vaadin7


【解决方案1】:

我建议您为这种“重视图”使用自定义布局,可能与简单的 htlm 模板结合使用。 应用程序变得更快的另一种可能性是替换某些布局组合。例如。代替 VerticalLayout 和 Horizo​​ntalLayout 组合使用 GridLayout。 如果 UI 指南允许,请使用 AutoCompleteTextField 或 SuggestField 插件而不是 NativeSelect 或 ComboBox。

希望我的一些建议对你有帮助,

弗洛里安

【讨论】:

  • 感谢您的回答。我用 CssLayout 替换了垂直/水平布局,但它没有帮助。如果需要,我可以分享我的源代码,以帮助我摆脱这个性能问题。
  • 我已将圆顶项目添加到我的问题中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-17
  • 2017-12-11
相关资源
最近更新 更多