这有点像新手问题。
我在网页上有Google地图(APIv3)。每隔60秒,我希望它根据数据库活动查询我的数据库并在地图上绘制圆圈。我已经开始工作了,但是10分钟后,浏览器会崩溃并说内存不足(这是一款糟糕的LG智能电视浏览器)。我知道这个问题,但我不知道如何解决它。
我一遍又一遍地调用“initializeMap”函数,但地图的所有旧实例都留在内存中。有没有办法可以初始化一次,但是每60秒清除/加载一次圆圈?
这是我今天的代码。非常感谢提前!
var citymap = {};
function initializeMap() {
loadMap(); // This is the database call that fills citymap[] with information
var mapOptions = {
zoom: 4
};
delete map;
var circleArray =[];
for (var i = 0; i < circleArray.length; i++ ) {
circleArray[i].setMap(null);
}
circleArray.length = 0;
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
for (var city in citymap) {
var populationOptions = {
strokeColor: '#FA6A42',
strokeOpacity: 0,
strokeWeight: 0,
fillColor: '#FA6A42',
fillOpacity: .8,
map: map,
center: citymap[city].center,
radius: 135000 + (citymap[city].num_entries * 10000)
};
cityCircle = new google.maps.Circle(populationOptions);
}
}
google.maps.event.addDomListener(window,'load', initializeMap);
function refreshData() {
window.setInterval(function () {
initializeMap();
}, 60000);
}