使用 Knockout.js - 我需要对绑定(bind)到 HTML 表的 observableArray 进行排序。单击列标题将对数组进行 ASC 或 DESC 排序 - 非常常见的任务。
问题是排序会使 UI 卡住大约 5 秒。我知道这是因为 JS 是单线程造成的。
我的问题是 - 对于耗时的 knockout 排序有什么解决方法吗?我的意思是如何显示一些加载器指示符或类似的东西?
最佳答案
问题“已解决” - 排序数组实际上相当快。问题是重新渲染页面上的 HTML 元素。
给其他用户的建议:对底层 JS 数组进行排序似乎(但我没有测量它)比对可观察数组进行排序要快一些,例如:
这更快:
anObsArray().sort(--sorting func here--); // notice brackets after name of anObsArray
anObsArray().valueHasMutated(); // <-- this line is important
比这个:
anObsArray.sort(--sorting func here--);
关于javascript - knockout 排序 - 耗时的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15266144/