通过将JavaScript排序函数从
myArray.sort(function (a, b) {
return a.name.localeCompare(b.name);
});
到
myArray.sort(function (a, b) {
return (a.name < b.name ? -1 : (a.name > b.name ? 1 : 0));
});
我成功地将在Chrome中对一个大约有1700个元素的数组进行排序所需的时间从1993毫秒减少到了5毫秒。速度提升了近400倍。但不幸的是,这是以无法正确排序非英语字符串为代价的。
显然,当我尝试进行排序时,我不能让我的用户界面(UI)阻塞2秒钟。有没有什么办法可以避免可怕缓慢的localeCompare函数,同时仍然支持本地化字符串的排序?
localeCompare
的排序。您可能会发现,序列化和反序列化大量数据所花费的时间超过了异步执行的好处,但这值得一试。 - Matt Ball