1

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

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

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

4

1 回答 1

1

问题“解决了”——排序数组实际上非常快。问题是在页面上重新渲染 HTML 元素。

给其他用户的建议:对底层 JS 数组进行排序似乎(但我没有测量)比对 observable 数组进行排序要快一些,例如:

这更快:

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

比这个:

anObsArray.sort(--sorting func here--);
于 2013-03-07T08:56:48.880 回答