在以下示例中,如何通过 <canvas> 释放分配的内存:
<html>
<head>
</head>
<body id="body">
<canvas id="canvas" width=3000 height=2000/>
<script>
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.fillText("hao ar iu?", 20, 20);
</script>
</body>
</html>
我尝试将var canvas设置为 null(canvas = null),以删除画布(删除画布)或动态创建画布并将其附加到“文档”根,然后以这种方式删除它:
<div onclick=reload()>CLICK TO RELOAD PAGE</div>
<script>
function reload(){
body.removeChild(canvas);
location.reload();
}
</script>
没有任何变化,分配的内存随着每次页面重新加载而变得越来越大,直到我的浏览器占用过多的 CPU RAM 内存。有时浏览器会崩溃。有时垃圾收集器会清除范围之外的一些变量。但它让太多的内存被占用。我使用 Chrome 版本 25。是否有任何方法可以释放 <canvas> 内存或引发早期垃圾收集?