浏览器冻结是因为(太重了?)JavaScript,画布渲染

时间:2011-04-23 13:54:51

标签: javascript html5 canvas

我有一个由Javascript(window.onload事件)呈现的画布透视网格的草稿网站,但是在任何最新的浏览器上加载网站时 - 浏览器冻结至少几秒钟,甚至用户界面都没有响应。该脚本由6个循环组成,总共超过200次迭代,每次循环绘制一条线。我怎样才能避免冻结?每次迭代后或每次循环后设置超时?可能是画布问题吗?

www.modwebsolutions.com/test (在呈现期间锁定浏览器)

4 个答案:

答案 0 :(得分:3)

对我而言,它的效果非常好。

您可以做的是将渲染委托给网络工作者,因此您的“主线程”可以免费进行用户互动

答案 1 :(得分:0)

JS在与浏览器相同的线程中运行。所以这可能是因为绘图过于密集。是的,使用超时/间隔让浏览器在绘图之间做一些其他的事情。

答案 2 :(得分:0)

嗯,是的,画布非常不优化。你的画布也很大;)

是的,你可以延迟进一步绘图,这样cpu可以处理浏览器输入,从而减少冻结;)

请参阅:http://pastehtml.com/view/1e7dan3.html(它并非绘制所有内容,但您可以明白这一点;)

答案 3 :(得分:0)

您需要使用setTimeout()或setInterval()来缓慢绘制并避免浏览器冻结:)