默认情况下,当加载页面时,ZK基于在ZUML页面内定义的内容依次创建组件。但是,我们可以推迟部分组件的创建,直到它们可见。这个特性即为随机存取(load-on-demand)。如果在初始时有许多非可见组件,随机存取可以提高性能。
延迟创建子组件的最简单方式是使用fulfill
属性。例如,在下面的代码片断中,comboitem
组件将不会被创建,comboitem
组件接收了onOpen
事件,此事件可使comboitem
变为可见。
<combobox fulfill="onOpen"> <comboitem label="First Option"/> </combobox>
换句话说,如果一个ZUML元素使用了 fulfill
属性,直到 fulfill
指定的事件发生时这个组件的子组件才会被处理。
如果创建子组件创建事件的目标是另一个组件,你可以按如下描述指定目标组件的标识。
<button id="btn" label="show" onClick="content.visible = true"/> <div id="content" fulfill="btn.onClick"> Any content created automaticall when btn is clicked </div>
如果组件属于不同的ID空间,你可以在事件名称之后指定一个路径。
<button id="btn" label="show" onClick="content.visible = true"/> <window id="content" fulfill="../btn.onClick"> Any content created automaticall when btn is clicked </window>