使用knockout.js -我需要排序一个绑定到超文本标记语言表格的observableArray。单击列标题将对数组进行ASC或DESC排序,这是非常常见的任务。
问题是排序会冻结UI大约5秒。我知道这是因为JS是单线程的。
我的问题是--对于耗时的淘汰排序,有什么解决办法吗?我的意思是如何显示一些装载器指示器或类似的东西?
发布于 2013-03-07 16:56:49
问题“解决”-排序数组实际上是相当快的。问题是在页面上重新呈现HTML元素。
对其他用户的建议:对底层JS数组进行排序似乎比对可观察数组进行排序要快一些(但我没有衡量它),例如:
这样做速度更快:
anObsArray().sort(--sorting func here--); // notice brackets after name of anObsArray
anObsArray().valueHasMutated(); // <-- this line is important而不是这样:
anObsArray.sort(--sorting func here--);https://stackoverflow.com/questions/15266144
复制相似问题