我正在测试的代码:
<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 的内存使用情况 下图是 Safari 的内存使用情况
是因为我使用 setInterval 的方式导致内存泄漏吗?Chrome 足够聪明,可以收集垃圾,但 Safari 有问题吗?
我实际上在做的只是使用 setInterval 通过 ajax 定期获取数据并写入 localStorage。起初我以为我使用 setInterval 的方式不好,但是在剥离所有内容并运行上面的示例代码后,Safari 仍然会占用内存而不是释放它。