【发布时间】:2011-07-09 11:31:11
【问题描述】:
我正在进行的这个项目,我有一个元素列表并将它们转换为“图形”(不是真正的图形,但您可以将其称为伪图形)。我有我的数据集,我在数据上运行for 循环,然后为每个元素创建一个li 元素,创建和父ul,附加lis,然后将父元素附加到另一个DOM 元素(我们称之为祖父母)已经在页面上。之后,我必须根据用户交互对该列表进行后续更新。
另外,这都是在使用 jQuery 的上下文中。
现在,我的问题是 - 创建元素一次然后在每次后续调用中更新生成的 HTML 是否更快,还是重新创建每个元素更快,empty() 祖父元素(这将摆脱父元素ul),然后重新添加新创建的ul(我现在正在这样做)?
请记住,当我重新创建 lis 时,它们根本不在 DOM 中,因此在重新创建它们时没有重绘/重排。仅当我重新添加新创建的 ul 时才会重新绘制。
我正在和一位同事交谈,他说最好在创建 HTML 元素后更新它们,而不是每次都重新创建它们。我正在考虑走这条路,但后来我认为更新现有的lis 实际上会导致重新绘制 50 个元素,而不是只用empty() 做一个大规模的元素然后重新添加新创建的ul。
想法?
【问题讨论】:
标签: javascript jquery performance repaint dom-manipulation