使用knockout.js - 我需要对绑定到HTML表的observableArray进行排序。单击列标题将对数组ASC或DESC进行排序 - 非常常见的任务。
问题是排序会冻结用户界面大约5秒钟。我知道这是因为JS是单线程的。
我的问题是 - 是否有耗时淘汰排序的解决方法?我的意思是如何显示一些Loader指示符或类似的东西?
答案 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--);