小编zoo*_*ron的帖子

使用HTML5 getImageData泄漏javascript内存

我一直在努力为我正在创建的javascript游戏制作一些视觉效果,我注意到我用来调制我的精灵颜色的一段代码使我的浏览器内存使用率上升,似乎没有限制.

你可以在这里看到代码和内存泄漏: http ://timzook.tk/javascript/test.html

当我每次从画布上下文调用getImageData(通过setInterval)以使新的ImageData对象重新着色时,这个内存泄漏只发生在我的updateimage()函数中.我原本以为javascript的垃圾收集器会破坏旧的垃圾收集器,但如果不是,我不知道如何手动销毁它.任何帮助弄清楚它为什么这样做或如何解决它将不胜感激.

我的问题与这个问题非常相似:使用getImageData,javascript,HTML5 canvas时泄漏内存是什么然而,我需要运行setInterval调用的函数中的每一帧代码,他将其移到setInterval函数之外的解决方案是对我来说是一个选择,我不能发表评论,询问他是否找到了解决问题的其他方法.

测试它的人注意:由于此示例使用getImageData,因此只能通过将其放在.html文件中进行本地测试,需要Web服务器.此外,它显然使用HTML5元素,因此一些浏览器将无法使用它.

编辑:*已解决* 谢谢,下面的解决方案修复了它.我没有意识到你可以像使用drawImage()中的图像一样使用canvas元素,我重构了我的代码,所以它现在使用的内存要少得多.我将此更改的代码上传到上面链接的页面,如果有人想看到它.

javascript html5 memory-leaks canvas getimagedata

8
推荐指数
1
解决办法
3722
查看次数

标签 统计

canvas ×1

getimagedata ×1

html5 ×1

javascript ×1

memory-leaks ×1