javascript - knockout 排序 - 耗时的任务

标签 javascript knockout.js

使用 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/

相关文章:

javascript - .focus() 与 Zepto 不工作

javascript - 将 DOM 样式分配给 var

javascript - 使用 Javascript 处理 XML 响应

javascript - knockout 脏旗事件

knockout.js - knockout : Adding to observable Arrays in Nested ViewModels

javascript - 为什么这在 JS 中不起作用?? getElementById().style.width += 40 + "px";

javascript - 如何在 Javascript 中运行多个函数?

javascript - 具有数千个可观察值的 Knockout.js 表单对浏览器性能的影响

javascript - 使用 Knockout + Typeahead 自定义绑定(bind)更新文本框中的值

javascript - Knockout 和 JQuery 用于 Ajax 表单提交