Javascript Google Maps V3自定义函数:切换几次后出现极端滞后

Javascript Google Maps V3自定义函数:切换几次后出现极端滞后,javascript,google-maps-api-3,memory-leaks,lag,overlays,Javascript,Google Maps Api 3,Memory Leaks,Lag,Overlays,我有一些非常大的多边形(我用来生成它们的xml文件是400k,只是点数据) 一旦用户通过单击按钮加载多边形,我将这些多边形存储在一个数组中 var schoolDistPolygon = new google.maps.Polygon({ paths: points, strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 3, fillColor:color, f

我有一些非常大的多边形(我用来生成它们的xml文件是400k,只是点数据)

一旦用户通过单击按钮加载多边形,我将这些多边形存储在一个数组中

var schoolDistPolygon = new google.maps.Polygon({
      paths: points,
      strokeColor: "#FF0000",
      strokeOpacity: 0.8,
      strokeWeight: 3,
      fillColor:color,
      fillOpacity: 0.35
    });
    schoolPolygons.push(schoolDistPolygon);
然后使用此方法打开和关闭多边形:

function toggleOverlays (the_array, mode){
   var arr = eval(the_array);
   if(mode=='hide'){
    for(i=0;i<arr.length;i++)
    {
        arr[i].setMap(null);

    }
         $("#schoolDistButton").bind('click',function(){toggleOverlays(the_array,'show')});
    }

       if(mode=='show'){
    for(i=0;i<arr.length;i++)
    {
        arr[i].setMap(map);

    }
         $("#schoolDistButton").bind('click',function(){toggleOverlays(the_array,'hide')});
    }


}
函数切换覆盖(_数组,模式){
var arr=eval(_数组);
如果(模式=='hide'){

对于(i=0;i您可以在每次函数调用时绑定click事件,但以前绑定的click仍然存在

首先解除绑定,单击:

$("#schoolDistButton").unbind('click')

当然,就是这样。我以前很少使用bind,现在我知道了,非常感谢!