Javascript DocumentFragment和谷歌地图

Javascript DocumentFragment和谷歌地图,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我有一个网站,使用谷歌地图实用程序库的组合;markerWithLabel和markerClusterPlus markerWithLabel操纵DOM将标签放置在地图上。我的问题是,这在时间和CPU方面都非常昂贵 我想知道是否有一种方法可以缓存对DOM的写入并同时刷新它们,从而减少重画并有望提高性能 我在下面添加了这段代码,以显示我目前的工作方式。新标记是似乎为添加到地图中的每个项目重新绘制的部分。可能是最糟糕的方法,一次一个 $.rMap.ready( function() { pe

我有一个网站,使用谷歌地图实用程序库的组合;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
    });         
 });
$.rMap.ready(函数(){
per.mapRM=JSONH.unpack(per.mapRM);
var标记=[];
对于(变量i=0,mlen=per.mapRM.length;i
例如,我在考虑使用documentFragments,还是我在这里找错了方向


谢谢

在创建MarkerWithLabel对象时,是否尝试删除参数“map:$.rMap.map”


我认为markerClusterer应该能够处理这个问题,看起来你是在要求地图渲染它们(在markerClusterer完成简化工作之前)

如果我们想帮助您提高效率,您可能应该向我们展示您是如何生成这些标记的?我想到的第一件事是绘制较少的标签,使用缩放值来决定是否必须写入标签。MarkerClusterer的目的是在一个位置表示多个标签。不幸的是,它需要将标记添加到地图中,以便计算集群的成员。哦,使用图标而不是标签也要快得多,因为标签需要更多的DOM操作。