当我有Vaadin应用程序时,会将所有gui小部件下载到客户端,还是按需下载它们。我问,因为我有一些客户只使用一些小部件而不是其他小部件。
答案 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)
This page似乎说,如果标记为不可见,则组件仅在服务器端(在Java中)表示,而在客户端中不方面, not 不会出现在Web浏览器的DOM中。如果尚未渲染该组件,则为true。
在客户端上的DOM中创建组件后,该组件将可见。如果变为不可见,该组件将保留在DOM中。
在所有情况下,尽管不可见,但由于涉及该组件的事件而导致流量停止。因此,虽然看不见,但网络使用效率很高。