Knockout +大数据集性能



我有一个非常大的后期/长数据集,我希望能够过滤和显示客户端。我已经分析和优化了最好的我可以,但是有什么比可以做加快性能?

  • 精度需要达到英里/公里级别。
  • 我需要ie7/8/9/10的支持,尽管我可以接受,我们走得越远,性能可能会越差。
  • 我没有绝对依赖于任何库,只要是最适合工作的。

  • Chrome: 1.1s
  • Firefox: 0.9s
  • IE10: 5.1s
  • IE9: 3 s
http://jsfiddle.net/hRvKz/

// Apparently I must post code... but out of context it would make no sense.
// Checkout jsfiddle.

您的代码创建了标准和每个示例之间的依赖关系。为了创建标准和样本数组之间的依赖关系,我创建了一个计算函数。这是为了只创建少量的依赖项。

修改后的代码只占用20ms,而原始代码占用2700ms

viewModel.computedLocations = ko.computed( function () {
    var lat = viewModel.filters.lat();
    var lng = viewModel.filters.lng();
    var locs = viewModel.locations();
   ko.utils.arrayForEach(locs, function (item) {
        item.roughDistance = equirectangularApproximation(item.lat, item.lng, lat, lng);
        item.closeDistance = sphericalLawOfCosines(item.lat, item.lng, lat, lng);
        item.closeDistanceStatic = item.closeDistance;
        item.exactDistance = haversine(item.lat, item.lng, lat, lng);
    });
    return locs;
});

看到小提琴

最新更新