描述的方案是内存泄漏还是浏览器问题

时间:2013-06-26 08:48:44

标签: javascript memory browser setinterval

我正在测试的代码:

<html>
<body>
<div id="xxx"></div>
<script>
var foo = function(){
  this.x = window.localStorage;
  this.y = document.getElementById('xxx');

  this.y.textContent = 'x:' + this.x.length + '-' + Math.random();
}
setInterval(foo, 1000);
</script>
</body>
</html>

以下图片是Chrome的内存使用情况 Memory usage from chrome 下图是Safari的内存使用情况 Memory usage from safari

是否因为我使用setInterval的方式导致内存泄漏? Chrome很容易收集垃圾,但Safari有问题吗?

我实际上只是使用setInterval来定期通过ajax获取数据并写入localStorage。起初我以为我正在以一种糟糕的方式使用setInterval,但是在删除所有内容并运行上面的示例代码之后,Safari仍然会占用内存并且不会释放它。

1 个答案:

答案 0 :(得分:0)

是的,它的内存泄漏。您可以在全局范围内创建与DOM元素链接的js对象。