Vaadin是否将所有gui小部件下载到客户端?

时间:2011-04-25 06:30:40

标签: vaadin

当我有Vaadin应用程序时,会将所有gui小部件下载到客户端,还是按需下载它们。我问,因为我有一些客户只使用一些小部件而不是其他小部件。

3 个答案:

答案 0 :(得分:2)

默认加载方法是急切的(EagerWidgetMapGenerator)。您可以选择加载小部件。以下是其中一些:

<强>懒惰

您可以选择使用LazyWidgetMapGenerator将其添加到您的widgetset(.gwt.xml):

<generate-with class="com.vaadin.terminal.gwt.widgetsetutils.LazyWidgetMapGenerator">
    <when-type-is class="com.vaadin.terminal.gwt.client.WidgetMap" />
</generate-with>

这将仅在请求时加载小部件。

<强>的widget定义

与上述相同,但将LazyWidgetMapGenerator替换为WidgetMapGenerator。这将使用小部件的加载首选项,我相信大多数都是DEFERRED。

自定义#1

通过继承CustomWidgetMapGenerator并在widgetset中定义它来创建自定义小部件地图生成器(与上面相同,但将LazyWidgetMapGenerator替换为您的类)。

自定义#2

通过继承WidgetMapGenerator(主要是延迟,由小部件定义)或EagerWidgetMapGenerator(每个小部件加载EAGERly)创建自定义小部件地图生成器,仅设置一些小部件LAZY(或DEFERRED,或EAGER)并在您的widgetset中定义它。

有关详情,请查看API文档,然后注意: http://dev.vaadin.com/wiki/WidgetSet

答案 1 :(得分:1)

您可以选择在开始时加载哪些小部件以及按需加载哪些小部件。默认是在开始时加载它们。

答案 2 :(得分:1)

Vaadin 14

手册中的

This page似乎说,如果标记为不可见,则组件仅在服务器端(在Java中)表示,而在客户端中方面, not 不会出现在Web浏览器的DOM中。如果尚未渲染该组件,则为true。

在客户端上的DOM中创建组件后,该组件将可见。如果变为不可见,该组件将保留在DOM中。

在所有情况下,尽管不可见,但由于涉及该组件的事件而导致流量停止。因此,虽然看不见,但网络使用效率很高。