Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么对性能更有利:更新特定单元格或替换整个表?_Javascript_Jquery_Html_Performance - Fatal编程技术网

Javascript 什么对性能更有利:更新特定单元格或替换整个表?

Javascript 什么对性能更有利:更新特定单元格或替换整个表?,javascript,jquery,html,performance,Javascript,Jquery,Html,Performance,我的项目要求我通过对PHP脚本的AJAX调用来更新HTML表中特定列的内容 就工作量而言:该表包含约4列和约20行(随着时间的推移,可以添加更多行) 什么更有效(或最有效): 仅替换需要更新的列/特定单元格 用更新的数据替换整个表 在某些情况下: 该表基本上在一列中包含服务器的名称,在相邻的列中包含它们各自的联机状态。用户单击一个按钮来检查所有服务器的状态,随后将调用jQuery在查询完成后更新联机状态列 替换需要更新的行和单元格可能会更快。不过,在大约20行中,您甚至不会注意到差异。获得最佳答

我的项目要求我通过对PHP脚本的AJAX调用来更新HTML表中特定列的内容

就工作量而言:该表包含约4列和约20行(随着时间的推移,可以添加更多行)

什么更有效(或最有效):

  • 仅替换需要更新的列/特定单元格
  • 用更新的数据替换整个表
  • 在某些情况下:
    该表基本上在一列中包含服务器的名称,在相邻的列中包含它们各自的联机状态。用户单击一个按钮来检查所有服务器的状态,随后将调用jQuery在查询完成后更新联机状态列

    替换需要更新的行和单元格可能会更快。不过,在大约20行中,您甚至不会注意到差异。

    获得最佳答案的唯一方法是简单地对每种方法进行基准测试。这在很大程度上取决于HTML生成代码的执行方式。如果速度相当快,那么从头开始构建HTML并在表的父级上执行innerHTML赋值可能会更快。但是如果速度慢,则迭代每个表单元并替换每个表单元的内容可能会更快。您应该只运行一个简单的基准测试


    此外,正如zneak所指出的,您对20个表行所做的任何事情都不可能引人注目。

    明白。我没有考虑HTML生成代码的时间。我只关注jQuery的迭代时间,现在我意识到这仅仅是图片的一半。谢谢只是好奇,什么是测试javasscript运行时的好方法。firebug是这样做的,还是只是在开始和结束时保留一个日期时间,然后在某个地方打印出差异?谢谢。@Jeff:像你建议的那样,一个简单的“时间差”方法是可行的,但是你的脚本至少需要运行几十毫秒才能记录任何经过的时间。通常你只需要记录一个开始时间,迭代几千次或更多次,记录一个结束时间,然后除以迭代次数。+1,不仅如此,只替换单元格肯定更快,因为替换整个表需要浏览器为整个表重新创建DOM结构。但是浏览器使用innerHTML非常快,替换单个单元格仍然需要复杂的DOM遍历来查找要替换的节点。它当然会根据每个单元格的内容、要更新的数量以及从头生成HTML表的复杂性而有所不同。