用Google Maps API 在地图上标标记,就是Marker,标N个标记,要用一个数组记录它们
var ers = [];
添加一个Marker就
ers.push(er);一次查询地图上有好多er
第二次查询的时候要删除之前的Marker,即要删除地图上显示的,也要清空数组这里有两种方式if(ers)
{
while(ers)
{
//从数组中删除
var er = ers.pop();
//地图上删除
er.setMap(null);
}
}还有一种方式
if(ers)
{
for(var i=0;i<ers.length;i++)
{
ers[i].setMap(null);
}
ers=[];
}
第二种会不会导致占内存越来越大

解决方案 »

  1.   

    makers=[] 这样不行么?  我也不晓得呢
      

  2.   

    我曾经开着CSDN,几天不关(是在服务器上开的)。结果浏览器就占内存接近2G,
    我不希望这样的网页产生
      

  3.   

    var arr = [];
    arr.length = 0; //将数组清空js里变量的作域只有函数体,尽量减少数组的作用域,还有尽可能少用闭包。。
    因为每一个函数都会创建一个变量作用域,是一堆指针,对当前函数,和父级函数(一直向上)的所有变量
    和函数本身的一个引用,除非闭包未被引用,否则作用域一直存在,其父级函数的资源永远不会被js引擎
    回收
      

  4.   

    1,2都可以都可以断开引用没有应用的对象会自动被回收的我也做google map 开发  但是清空maker的时候 偏向第一种  看着安全 心里踏实...................