我有一些 Javascript(与 Google 地图 API 一起使用),我正在 IE 和 Chrome 上进行测试,并注意到 IE 中出现了内存泄漏症状:当我连续刷新页面时,IE 中使用的内存量保持增长(快速增长),但在 Chrome 中保持不变。不需要发布所有的代码(因为它相当长),我可以得到一些建议要注意什么?是什么导致在 IE 上刷新页面时内存不断增长?如我所说,没有代码很难,但我想看看是否有任何通用建议可行。谢谢。
更新:感谢迄今为止的回答。作为一个理智的检查,我运行了谷歌地图 api 的 "Hello World" 代码 from google,以查看在 IE 中会发生什么(该代码显示如下)。当我在 IE 中反复刷新页面时,内存不断增长。这是内存泄漏吗?这似乎不是预期功能...
更新:感谢迄今为止的回答。作为一个理智的检查,我运行了谷歌地图 api 的 "Hello World" 代码 from google,以查看在 IE 中会发生什么(该代码显示如下)。当我在 IE 中反复刷新页面时,内存不断增长。这是内存泄漏吗?这似乎不是预期功能...
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
更新2:那么在IE中没有办法运行这个谷歌Hello World地图API代码而不泄漏内存吗?我注意到如果我在maps.google.com上运行相同的实验,似乎就没有泄漏...如果有人能帮我修改这个Hello World代码,使其在IE中不会泄漏,那就太好了;这样我就可以在此基础上构建(如果使用JQuery有帮助,我不介意,但我已经在Hello World代码上尝试过了,在IE中仍然泄漏)。再次感谢。
document.getElementById('mydiv').onclick=null;
等等。但您完全正确。在上面的代码中,我没有看到您做错了什么。这一定是Google代码的问题-我可能能给出的最糟糕的答案。 - Andrew