在我们的应用程序中,我们有一棵树(使用Ext.tree.Panel创建),并且有一些节点的子节点大约为2500.
当我们尝试将数据加载到树中时,Internet Explorer显示弹出窗口“脚本导致Internet Explorer运行缓慢,停止运行脚本?”。
我们发现,如果子节点小于500,则IE不会出错。因此,我们尝试一次只加载400个子节点,并在点击页面上可用的按钮时保持加载。
不幸的是,IE仍在提供错误。我刚刚创建了使用jsfiddler尝试做的示例。以下是链接。
代码示例here
结果here
以下是代码。
function addNodes(){ var node = Ext.getCmp('sampleTree')。items.items [0] .node.childNodes [0];
for (var cnt = 0; cnt < 400; cnt++) {
node.appendChild({
"task": cnt + "Hello",
duration: cnt,
user: 'Tommy Maintz' + cnt,
iconCls: 'task',
leaf: true
});
}
};
有关如何解决此问题的任何建议?
答案 0 :(得分:1)
默认情况下,ExtJS Tree是一个非常重的组件。对于您提供的代码,每次添加节点时,它都会执行完整的布局计算。如果你没有关闭动画,计算会发生几次。 树的两种性能改进方法。
Ext.suspendLayouts
方法。animate:false
;这将略微提升用户体验,因此您甚至可以考虑使用Ext.isIE
方法为IE设置此选项