Performance Ext JS自4.2版本以来非常慢地检查/取消检查树中的节点

Performance Ext JS自4.2版本以来非常慢地检查/取消检查树中的节点,performance,extjs,extjs4.2,treepanel,Performance,Extjs,Extjs4.2,Treepanel,我使用cascadeBy函数和record.set('checked',checked);选中/取消选中Ext JS treepanel中的子节点。 在ExtJS的4.0.7和4.1版本中,所有这些都可以快速工作。但是当我将我的项目升级到4.2版本时,这个操作会占用超过4倍的时间 下面是一个例子: 如果我使用版本4.2.0,我将在2677ms中渲染132个项目 如果我使用版本4.1.0,我会在735毫秒内渲染132个项目 如果我使用版本4.1.1,我会在645毫秒内渲染132个项目 如何提高t

我使用cascadeBy函数和record.set('checked',checked);选中/取消选中Ext JS treepanel中的子节点。 在ExtJS的4.0.7和4.1版本中,所有这些都可以快速工作。但是当我将我的项目升级到4.2版本时,这个操作会占用超过4倍的时间

下面是一个例子:

如果我使用版本4.2.0,我将在2677ms中渲染132个项目

如果我使用版本4.1.0,我会在735毫秒内渲染132个项目

如果我使用版本4.1.1,我会在645毫秒内渲染132个项目


如何提高treepanel的速度?

我会将此作为“问题/错误”记录在ExtJS论坛上

但要提高性能,请使用
suspendLayouts()

这是一把小提琴:

它的渲染时间为…之前的1/10。。。更像60毫秒


此方法专为这些“批量”更新而设计。

谢谢!这让我从客户系统的巨大性能漏洞中解脱出来。
checkchange: function (record, checked, opts) {

    var i=0;
    var start=new Date;
record.cascadeBy(function(e) {

    i++;
    e.set('checked', checked);
    });
    var stop = new Date;
    alert(i +'items '+ (stop-start)+'ms');

}
    checkchange: function (record, checked, opts) {
        var i = 0;
        var start = new Date();
        panel.suspendLayouts();
        record.cascadeBy(function (e) {
            i++;
            e.set('checked', checked);
        });
        panel.resumeLayouts();
        var stop = new Date();
        alert(i + 'items ' + (stop - start) + 'ms');

    }