jQuery MiniUI

 找回密码
 立即注册
查看: 2767|回复: 6
打印 上一主题 下一主题

grid分页200行,设置冻结列0-2,执行非常慢,10秒以上 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2017-1-4 17:00:02 |只看该作者 |倒序浏览
IE11浏览器,grid分页200行,设置冻结列0-2,执行非常慢,10秒以上

下面这段运行时间长

    _doSyncRowHeight: function (row1, row2) {
        row1.style.height = row2.style.height = "auto";
        var td1 = row1.cells[0],
            td2 = row2.cells[0];
        var h1 = td1.offsetHeight;
        var h2 = td2.offsetHeight;
        if (h1 < h2) h1 = h2;
        row1.style.height = row2.style.height = h1 + "px";
    },

Rank: 8Rank: 8

沙发
发表于 2017-1-4 17:15:24 |只看该作者
请加上虚拟滚动

请看我做的例子,200条数据,冻结,不到1秒就可以执行完毕
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 3Rank: 3

板凳
发表于 2017-1-4 17:25:19 |只看该作者
dforce 发表于 2017-1-4 17:15
请加上虚拟滚动

请看我做的例子,200条数据,冻结,不到1秒就可以执行完毕

不解决问题,你的虚拟滚动是10条数据,把他设成200条一页一样慢。另外如果去掉冻结,200行分页也很快。如果冻结,加上固定高度为true也很快。_doSyncRowHeight逻辑好像有问题

Rank: 8Rank: 8

地板
发表于 2017-1-4 17:43:30 |只看该作者
bl00071 发表于 2017-1-4 17:25
不解决问题,你的虚拟滚动是10条数据,把他设成200条一页一样慢。另外如果去掉冻结,200行分页也很快。如 ...

大数据量必须虚拟滚动,你200多行,一下子绘制200条数据,肯定有很大性能开销

Rank: 3Rank: 3

5#
发表于 2017-1-5 14:38:02 |只看该作者
dforce 发表于 2017-1-4 17:43
大数据量必须虚拟滚动,你200多行,一下子绘制200条数据,肯定有很大性能开销  ...

其实miniui还是很强壮的,一个用于单表Grid显示10列,从服务读数据到展示,1000条也只需要2秒左右。所以200行是没问题的,我们其他页面都是200行分页,速度很快。只有存在冻结列时,速度下降很大要10秒。如果fixheight=true,及时是冻结列200行也在2秒左右。所以这个问题与虚拟滚动关系不大

Rank: 8Rank: 8

6#
发表于 2017-1-5 15:43:45 |只看该作者
bl00071 发表于 2017-1-5 14:38
其实miniui还是很强壮的,一个用于单表Grid显示10列,从服务读数据到展示,1000条也只需要2秒左右。所以2 ...

当然有关,冻结是个开销很大的过程,将一个table拆成2个table,并同步两侧table每行的高度。绘制30条还是绘制200条的开销完全不是一个级别的。

Rank: 8Rank: 8

7#
发表于 2017-1-9 16:55:58 |只看该作者
我们已经处理好,做了很大的优化,明天更新!

Archiver|普加软件

GMT+8, 2024-10-4 09:27 , Processed in 1.029814 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部