首页 新闻 会员 周边

为什么新建 600条 html table row要2分钟?

0
悬赏园豆:30 [已解决问题] 解决于 2011-05-05 14:33

我从一个窗口中取得了600条数据,我再将这600条数据插到当前页面的。
数据插到当前页面的时候,我是用建的在table里面新建行了,再每一行(table row)中插入一条数据了啊!

chinasun的主页 chinasun | 初学一级 | 园豆:95
提问于:2011-04-16 17:37
< >
分享
最佳答案
0

当大量Dom操作时,应使用document.createDocumentFragment,先在内存中创建所有节点,再一次性插入,DOm操作是很要时间的!

收获园豆:20
Jeremy Liu | 小虾三级 |园豆:705 | 2011-04-16 22:59
你这个方法可以提高速度了,不过提高的速度有限了啊!
chinasun | 园豆:95 (初学一级) | 2011-05-05 14:59
var fragement = document.createDocumentFragment();
var tr = document.createElement('tr');
.....
fragement.appendChild(tr)
.....
table.appendChild(fragement);
不可能很长时间的,自行检查一下代码。
Jeremy Liu | 园豆:705 (小虾三级) | 2011-05-09 10:44
其他回答(3)
0

难不成你是一条一条的插入的?

高凡凡高 | 园豆:95 (初学一级) | 2011-04-16 20:47
我从一个画面查到结果,再选中想要的数据,传到另一个画面
支持(0) 反对(0) chinasun | 园豆:95 (初学一级) | 2011-05-05 14:33
0

每加一列,页面都需要重绘,页面这么一直重新渲染能快才怪呢。

像ls那样dom方式就行,还有拼好全部再一次性innerHTML也很不错:)

收获园豆:10
LittlePeng | 园豆:3445 (老鸟四级) | 2011-04-17 14:15
0

直接后台抛出table吧

like%'远远'% | 园豆:635 (小虾三级) | 2011-04-18 12:01
一个画面的数据选取部分数据加到另一个画面去。
支持(0) 反对(0) chinasun | 园豆:95 (初学一级) | 2011-05-20 09:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册