我有一个非常大的纬度/经度数据集,我希望能够过滤和显示客户端。我已经分析并优化了我能做的最好的事情,但是除了可以做些什么之外还有什么可以加快性能?
粗略
// Apparently I must post code... but out of context it would make no sense.
// Checkout jsfiddle.
答案 0 :(得分:4)
您的代码会在标准和每个示例之间创建依赖关系。 我创建了一个计算函数,以便在标准和样本数组之间创建依赖关系。这个,只是为了创建一些依赖。
原始修改后的代码只需 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;
});
我希望它有所帮助。