【发布时间】:2020-09-03 09:57:13
【问题描述】:
我的应用有一个 WebView 控件,里面有一个 HTML 页面。
该页面由每个包含一个 iFrame 的 div 组成,因此当许多 div 是 document.body 的子级时,所有 iFrame 本身就像 HTML 页面一样,一个接一个。
div 有一个名为 orderIndex 的属性,因为它们必须根据索引数组进行排序。
(排序时 iFrame 已加载)
这些索引是新位置,因此例如 orderIndexesArray[0] 包含第一个孩子必须达到的新位置。
我在以下位置找到了一些排序方法:
https://stackoverflow.com/a/39569822/930835
我改编了这个
var bd = document.body;
Array.prototype.slice.call(bd.children)
.map(function (x) { return bd.removeChild(x); })
.sort(function (x, y) { return /* your sort logic, compare x and y here */; })
.forEach(function (x) { bd.appendChild(x); });
我希望排序过程不像“快速重新排序 HTML 页面的闪烁部分”,而是希望重绘从第一个开始,这样页面的可见部分就被替换掉了闪烁。
我也关心性能。 HTML 和 Javascript 不是我的主要编程环境。
那么,该算法从顶部重绘并表现良好,还是它包含大量交换并且速度很慢?
【问题讨论】:
标签: javascript html sorting dom children