我在地图上遇到了许多标记的性能问题[500+,已群集,但仍有问题]
经过一些研究后,我意识到我的应用/消除周期需要太长时间[镀铬约5秒]而且我唯一的深度监视在angular-ui-google-maps中被烘焙。将我的标记切换为modelsbyref="true"
可以减少一半。
来自他们的文档:
默认深度监视,因为modelsbyref未定义。如果设置为true,则为“true”,“T”等等,然后打开浅层监视。
所以无论如何,这给了我一个很好的性能提升[yay]。但是现在我的标记没有使用[boo]。我认为用副本替换一个项目会起作用,但也许我错过了一些东西。
我的HTML [我删除了typeEvent
属性之类的内容以保持小型化]
<ui-gmap-markers models="vm.vehicles"
idkey="'Id'"
coords="'Plot.coords'"
options="'Plot.options'"
modelsbyref="true">
</ui-gmap-markers>
更新我的标记的代码
for (let v = 0; v < vehicles.length; v++) {
const vehicle = vehicles[v];
// Find the right plot, and update it
// Note for brevity I've left out the "find new plot" code
vehicle.Plot = newPlot;
// Now copy the vehicle to create a new reference - I thought this would update the map
// It doesnt though ;/
vehicles[v] = angular.copy(vehicle);
}