我在JavaScript中创建了一个绘制摆线的程序。它工作正常,但如果它运行几分钟,它有时会出错,整个过程停止工作。
每个刻度线都会调用 render()
函数,并绘制不同的形状。
var c = document.getElementById('canvas');
var ctx = c.getContext('2d');
var imgData;
function render(){
ctx.putImageData(imgData, 0, 0); //similar to ctx.clearRect()
//draw a part of a line (I want to show this part of the line and all previous)
imgData = ctx.getImageData(0, 0, c.width, c.height);
//darw a pencil (it is moving and I don't want it to leave trail)
}
这是我遇到的错误:
Uncaught RangeError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': Out of memory at ImageData creation
我的错误仅在Google Chrome中,此代码在其他浏览器(甚至是IE)中运行良好。
为什么会出现问题以及如何修复程序以使其不再生成此错误?