我有一个站点,它使用Google实用程序库的组合;markerWithLabel和markerClusterPlus。
markerWithLabel操纵DOM将标签放在地图上。我的问题是,这是非常昂贵的时间和CPU方面。
我想知道是否有一种方法可以同时缓存对DOM的写入和刷新它们,以减少重绘,并有望提高性能。
我在下面添加了这段代码,以说明我目前是如何工作的。新的标记是为添加到地图中的每一个项目重新绘制的部分。可能是最糟糕的方法,一次一个。
$.rMap.ready( function() {
per.mapRM = JSONH.unpack(per.mapRM);
var markers = [];
for (var i = 0, mlen = per.mapRM.length; i < mlen; ++i) {
bubble_color = colorArray[parseInt(per.mapRM[i].b, 10)];
var marker = new MarkerWithLabel({
position: new google.maps.LatLng(parseFloat(per.mapRM[i].lt),parseFloat(per.mapRM[i].ln)),
map: $.rMap.map,
draggable: false,
raiseOnDrag: false,
icon: {},
labelContent: '<div id="rental-marker-'+ per.mapRM[i].id+'" class="marker-for-rent">'+
'<span class="point_border"></span><span class="point point_'+ bubble_color +
'"></span><span class="bubble bubble_'+ bubble_color +
'">$'+ per.mapRM[i].r+'</span>'
});
markers.push(marker);
}
var markerClusterer = new MarkerClusterer($.rMap.map, markers, {
averageCenter: true,
ignoreHidden: true,
printable: true,
maxZoom: 14
});
});例如,我正在考虑使用documentFragments,还是我在这里找错了树?
谢谢
发布于 2013-07-27 10:28:49
在创建$.rMap.map对象时,是否尝试删除参数"map: MarkerWithLabel“?
我认为markerClusterer应该处理这个问题,看起来您是在要求地图渲染所有这些内容(在markerClusterer完成简化工作之前)。
https://stackoverflow.com/questions/17896233
复制相似问题