ExtJS 6.防止延迟呈现具有本地存储的组合框
ExtJS 6. Prevent deferred rendering of comboboxes with local store
我有一个简单的组合框,实例化如下:
{
xtype: "combobox",
emptyText: "Geometry",
queryMode: "local",
displayField: "name",
valueField: "id",
forceSelection: true,
allowBlank: false,
itemId: "GeometryType",
value: "1",
store: Ext.create("Ext.data.Store",{
fields: ["id", "name"],
data: [
{"id": "1", "name": "Point"},
{"id": "2", "name": "LineString"},
{"id": "3", "name": "Circle"},
{"id": "4", "name": "Box"},
{"id": "5", "name": "Polygon"}
]
})
}
当我第一次展开(或点击下拉箭头)这个组合框时,我在检查器中看到,在页面的DOM
结构中出现了许多新项目,如:
<div class="x-boundlist x-boundlist-floating x-layer x-boundlist-default x-border-box" style="width: 388px; right: auto; left: 6px; top: 183.5px; height: auto; z-index: 19000;" id="boundlist-1245" tabindex="-1" data-componentid="boundlist-1245">
<div id="boundlist-1245-listWrap" data-ref="listWrap" class="x-boundlist-list-ct x-unselectable" style="overflow: auto; height: auto;">
<ul id="boundlist-1245-listEl" data-ref="listEl" class="x-list-plain" role="listbox" aria-hidden="false" aria-disabled="false">
<li role="option" unselectable="on" class="x-boundlist-item x-boundlist-selected" tabindex="-1" data-recordindex="0" data-recordid="10" data-boundview="boundlist-1245" id="ext-element-26">Point</li>
...</ul>
</div>
</div>
问题是,在DOM
中创建这些项目需要花费超过250ms的时间。所以,作为一个用户,我感觉有些明显的延迟,而且看起来不太好。一个简单的组合加载大约半秒!我希望,我可以加快这个过程与一些属性(延迟:false或类似的东西)。但我不知道这样的属性是否存在
A - combobox
是一种特殊类型的pickerfield
。pickerfield
有一个函数getPicker()
,它将尝试获取现有的选择器,如果它不存在,它将创建选择器的组件。
ExtJS在有人点击触发器时第一次调用getPicker()
,但这并不意味着你不能更早地调用它,如果你真的想:
var combo = Ext.widget({
...
});
combo.getPicker();
请注意,如果您有一个充满组合框的表单,并且在创建期间对所有组合框调用getPicker,那么在表单呈现期间延迟将是明显的。
相关文章:
- 组合框是否需要数据存储
- JavaScript算法,提供每种可能的项目组合,并将它们存储在数组中
- 将数据加载到存储后,Extjs组合框为空
- Rally App SDK 2.0rc1-为什么我的组合框只在第一次点击时忽略数据存储过滤器
- ExtJS组合框和过滤存储
- 组合框和绑定存储的存储筛选
- 绑定存储中断组合框
- 构建菜单或组合框,数据存储在“动态”数组中
- 无法在 ExtJS4 中加载组合的存储
- EXT JS :在组合框中,如何为不在存储中的记录设置显示字段
- ExtJS4 组合框加载/存储问题
- extjs4.2组合框只显示存储的唯一条目
- 组合框将不显示加载的存储数据
- EXT-JS组合框'当动态加载数据时,s存储在扩展后重置
- Extjs组合框在存储区未加载任何结果时保持重置文本值
- 如何在ExtJS 4中将存储加载到组合框时发送额外的参数
- 设置extjs 6组合框's在运行时存储数据会导致显示错误
- 如何创建一个通用的ExtJS组合框存储
- ExtJS 6.防止延迟呈现具有本地存储的组合框
- 如何设置一个dojo组合框存储