Javascript阻止HTML在画布上绘制

Javascript阻止HTML在画布上绘制,javascript,canvas,html5-canvas,Javascript,Canvas,Html5 Canvas,欢迎使用,当所述画布上的函数绘图位于循环内时,我在上绘图有问题 代码如下: do{ //…代码。。。 //绘图 ctx.clearRect(0,040400); ctx.beginPath(); for(设i=0;i

欢迎使用,当所述画布上的函数绘图位于循环内时,我在
上绘图有问题

代码如下:

do{
//…代码。。。
//绘图
ctx.clearRect(0,040400);
ctx.beginPath();
for(设i=0;i
在本例中,代码不工作的原因仅在于
do while(1)
,当使用
do while(0)
时,代码运行一次并正常工作。我知道问题是Javascript不允许HTML更改任何内容,但我不知道如何解决这个问题。

注意:有一个与此类似的问题,它没有解决我的问题,
Cheers

我用函数定义替换了
,而(1)

函数foo(){
//代码
}
在函数的末尾,我调用
setTimeout(foo,50)
。这解决了问题:

函数foo(){
//代码
设置超时(foo,50)
}

使用此函数,函数在每次迭代+50ms时循环一次。通过测量函数使用的时间,我可以在多台计算机上标准化函数的fps,并将超时设置为尽可能低。

除非您的while条件打破循环,否则不要使用
do…while
循环。