Javascript 在对表排序时,对DOM元素重新排序或重写元素更快吗';数据?

Javascript 在对表排序时,对DOM元素重新排序或重写元素更快吗';数据?,javascript,sorting,dom,Javascript,Sorting,Dom,通常,当我在DOM中对一个表进行排序时,我会创建一个数据数组来镜像表元素,捕获JS对象中对我有意义的信息(包括任何相关的属性)。此时,在确定适当的排序后,我有两个选择: 重写表中的数据(使用innerHTML、textContent等),迭代所有表元素 对表行元素(即HTML节点)重新排序,以反映排序数组中的正确顺序 哪种方法成本更低(即更快)?我想是后者,但我不确定。你能解释一下为什么一个特定的方法更快吗?这通常是一个很难预测的问题,因为虽然第二个方法显然应该更快,但是它经常会跨越JS/本机A

通常,当我在DOM中对一个表进行排序时,我会创建一个数据数组来镜像表元素,捕获JS对象中对我有意义的信息(包括任何相关的属性)。此时,在确定适当的排序后,我有两个选择:

  • 重写表中的数据(使用innerHTML、textContent等),迭代所有表元素
  • 对表行元素(即HTML节点)重新排序,以反映排序数组中的正确顺序

  • 哪种方法成本更低(即更快)?我想是后者,但我不确定。你能解释一下为什么一个特定的方法更快吗?

    这通常是一个很难预测的问题,因为虽然第二个方法显然应该更快,但是它经常会跨越JS/本机API的界限,这是非常昂贵的。然而,innerHTML方法调用昂贵的解析器和树的完整重建,然而,在此过程中没有边界交叉(显然,在传递它之前,您将在JS中构建整个字符串,并且只设置innerHTML一次)。基准测试?大概这可能也取决于浏览器。请尝试:。通过“重写数据”,您的意思是“…每个
    单元格”?是的。我的意思是访问特定的HTML元素并在I上执行.textContent=“blah”。