Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.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对网页上存储桶中的DOM元素进行排序的最佳方法_Javascript_Algorithm_Sorting_Complexity Theory_Space - Fatal编程技术网

使用JavaScript对网页上存储桶中的DOM元素进行排序的最佳方法

使用JavaScript对网页上存储桶中的DOM元素进行排序的最佳方法,javascript,algorithm,sorting,complexity-theory,space,Javascript,Algorithm,Sorting,Complexity Theory,Space,我面临的一个问题是,我需要根据不同的视图对元素进行排序,维护一堆不同视图的存储桶 例如,视图1如下所示: Bucket A: 1 4 Bucket B: 23 25 Bucket C: 9 14 视图2可能看起来像: Bucket A: 1 4 9 14 23 25 现在考虑这些是DOM上的元素(每个数字代表div) 根据所选视图对它们进行排序的最佳方法是什么?我是否应该在后台维护这些bucket(JavaScript数组),并且每次更新bucket时,都要再次渲染视图?或者我应该在DOM排

我面临的一个问题是,我需要根据不同的视图对元素进行排序,维护一堆不同视图的存储桶

例如,视图1如下所示:

Bucket A:
1
4
Bucket B:
23
25
Bucket C:
9
14
视图2可能看起来像:

Bucket A:
1
4
9
14
23
25
现在考虑这些是DOM上的元素(每个数字代表div)

根据所选视图对它们进行排序的最佳方法是什么?我是否应该在后台维护这些bucket(JavaScript数组),并且每次更新bucket时,都要再次渲染视图?或者我应该在DOM排序中这样做,或者换句话说,对DOM元素本身进行排序


主要要求是在执行视图更改时不应出现闪烁。

从性能角度来看,对本机JavaScript对象(如数组)进行任何类型的排序都比根据DOM元素的内容进行排序更快

如果您遇到闪烁,可能是由于CPU密集型DOM操作造成的。然而,我不能肯定地说,因为你没有提供一个例子

试试jsbin.com


另外:为了避免遇到以下情况之一,我建议使用underline.js或sugar.js之类的库,我认为这是一个很好的观点。在后台维护数组的情况下,我只需要对字符串进行排序,在非DOM排序的情况下,我将对复杂的DOM元素对象进行排序