淘汰赛排序 - 时间消耗任务

时间:2013-03-07 08:12:26

标签: javascript knockout.js

使用knockout.js - 我需要对绑定到HTML表的observableArray进行排序。单击列标题将对数组ASC或DESC进行排序 - 非常常见的任务。

问题是排序会冻结用户界面大约5秒钟。我知道这是因为JS是单线程的。

我的问题是 - 是否有耗时淘汰排序的解决方法?我的意思是如何显示一些Loader指示符或类似的东西?

1 个答案:

答案 0 :(得分:1)

问题“已解决” - 排序数组实际上非常快。问题是在页面上重新呈现HTML元素。

其他用户的

建议:排序底层JS数组似乎(但我没有测量它)比排序可观察数组快一点,例如:

这更快:

anObsArray().sort(--sorting func here--); // notice brackets after name of anObsArray
anObsArray().valueHasMutated(); // <-- this line is important

这就是:

anObsArray.sort(--sorting func here--);