【发布时间】:2010-08-12 14:18:32
【问题描述】:
我有一张大表,1 行,大约 2600 列(这是一个甘特图)
我要做的是克隆此表并将其复制 100 次到页面上的某个位置(而不是重绘表 100 次,因为它似乎效率较低,但我可能是错的)
var $templateTable = $("div#GTT_TLayout").clone();
//there are 100 divs matching it
$("div[id ^= 'taskgrid_bar_' ]").each(function(){
...
$(this).before($templateTable.html());
});
问题是一些客户遇到了这个“脚本超时”问题。
所以我的问题是,有没有更好的方法可以更有效地做到这一点?
非常感谢
【问题讨论】:
-
您是否尝试过只将
$templateTable传递给before()而不调用.html()? -
我知道这太离谱了,但是如果你正在处理这么大的东西,并且如果客户端脚本太慢,那么逻辑上的下一步肯定是转向服务器端脚本吗?
-
@Pointy,尝试过,但由于某些原因,它没有生成表格,@Yi Jiang,也尝试过。但是,性能比 JQuery 方式还要差。尽管最终它会生成,但非常缓慢。我可以看到每一行一次生成一行。好处是它保证了图表会被生成。
-
好吧,另一件可能要尝试的事情是进行更改,以便将表格的副本单独放入其他元素中,而不是将页面的整个部分(div 和所有)重建为一个大字符串值,然后一次性更新 DOM。
标签: javascript jquery performance