【发布时间】:2016-11-08 09:59:21
【问题描述】:
我使用这个循环来创建地图标记(1000 个点):
var markers = {};
for (var i = 0; i < items.data.data.length; i++) {
latVal = items.data.data[i].lat;
lngVal = items.data.data[i].lng;
ikona = icons.infost;
message = "<b>" + items.data.data[i].name + "</b>";
markers[i] = {'group': 'cmp', 'lat' : eval(latVal), 'lng' : eval(lngVal), 'icon' : ikona, 'message' : message};
}
$scope.Markers = markers;
如何提高 angularjs 中的 for 循环速度(目前大约需要 10 秒)?
【问题讨论】:
-
不要使用
eval() -
@devqon 是对的,eval 非常缓慢且不安全。假设 lat 和 lng 是数字,您可以使用
Number(latVal)和Number(lngVal)。 -
在循环外存储数组长度也不会受到伤害,`var len = items.data.data.length; for(var i = 0; i
-
@BojanaŠekeljić,在现代浏览器中并不重要。
标签: javascript angularjs loops for-loop