我有一个由Javascript(window.onload事件)呈现的画布透视网格的草稿网站,但是在任何最新的浏览器上加载网站时 - 浏览器冻结至少几秒钟,甚至用户界面都没有响应。该脚本由6个循环组成,总共超过200次迭代,每次循环绘制一条线。我怎样才能避免冻结?每次迭代后或每次循环后设置超时?可能是画布问题吗?
www.modwebsolutions.com/test (在呈现期间锁定浏览器)
答案 0 :(得分:3)
对我而言,它的效果非常好。
您可以做的是将渲染委托给网络工作者,因此您的“主线程”可以免费进行用户互动
答案 1 :(得分:0)
JS在与浏览器相同的线程中运行。所以这可能是因为绘图过于密集。是的,使用超时/间隔让浏览器在绘图之间做一些其他的事情。
答案 2 :(得分:0)
嗯,是的,画布非常不优化。你的画布也很大;)
是的,你可以延迟进一步绘图,这样cpu可以处理浏览器输入,从而减少冻结;)
请参阅:http://pastehtml.com/view/1e7dan3.html(它并非绘制所有内容,但您可以明白这一点;)
答案 3 :(得分:0)
您需要使用setTimeout()或setInterval()来缓慢绘制并避免浏览器冻结:)