Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.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_Dom - Fatal编程技术网

Javascript 在表值上运行计算时的最佳性能方法…;

Javascript 在表值上运行计算时的最佳性能方法…;,javascript,jquery,html,performance,dom,Javascript,Jquery,Html,Performance,Dom,问题摘要: 使用jquery:filter类并遍历每一行值来获取表行总和是否更快 或 维护反映表数据的dictionary键/值对是否更快&而是遍历dictionary (此应用程序的行数将在3-30范围内。) 详细信息: 我有一个5列的表。2列包含数字输入。3列包含数字输出 总行数根据用户添加/删除项目的不同而增减 每次用户更改任何单行条目号输入时,脚本必须进行计算并更新每行上所有其他条目的值 由于所有输出的值彼此成比例,因此脚本必须遍历每一行,并在每次更改时重新计算输出 计算需要: 一列的

问题摘要:

使用jquery:filter类并遍历每一行值来获取表行总和是否更快

维护反映表数据的dictionary键/值对是否更快&而是遍历dictionary

(此应用程序的行数将在3-30范围内。)

详细信息:

我有一个5列的表。2列包含数字输入。3列包含数字输出

总行数根据用户添加/删除项目的不同而增减

每次用户更改任何单行条目号输入时,脚本必须进行计算并更新每行上所有其他条目的值

由于所有输出的值彼此成比例,因此脚本必须遍历每一行,并在每次更改时重新计算输出

计算需要:

  • 一列的行条目之和
  • 每行2列的单独输入
  • 行的总数
脚本是用javascript编写的

输出以jquerymobile/html显示

脚本为每个行条目维护一个唯一的行id

我希望输出能够实时更新…这意味着当用户调整滑块输入时,输出会自动更新…并且尽可能少的延迟

考虑到这一点

问题是:

为了提高性能,进行计算和更新DOM的最佳方法是什么

A)

  • 使用jquery:filter by class获取每行的条目值

  • 迭代每个条目以获得总和

  • 然后遍历每一行条目,对每一行进行计算,然后更新3个输出的DOM

B)

  • 维护字典键/值对(使用行id作为键)。每次添加/删除一行时,字典都会更新

  • 维护一个单独的sum变量,每次更改输入和/或删除行时更新该变量

  • 保持单独的行数变量,每次添加/删除行时更新

  • 迭代字典项以进行计算

  • 使用字典中的#row_id更新DOM

C)

很明显我没想到


方法B需要做更多的工作。总的来说,我怀疑有一个更优雅的解决方案我没有考虑???

搜索dom的性能不会很好,但在决定接近时也应该考虑行数。行数应该在3-30左右。可能足够小,除非有问题,否则不要担心