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

browser freezes because of (too heavy?) JavaScript, canvas rendering

本文关键字:JavaScript 布渲染 冻结 是因为 太重 浏览器      更新时间:2023-09-26

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

www.modwebsolutions.com/test (将在渲染期间锁定浏览器)

对我来说效果不错。

你可以做的一件事是,将渲染委托给一个web worker,这样你的"主线程"就可以自由地进行用户交互

嗯,是的,画布是相当未优化的。你的画布也相当大;)

是的,你可以延迟进一步绘制,所以cpu可以照顾浏览器的输入,从而减少冻结;)

请参阅:http://pastehtml.com/view/1e7dan3.html(它没有绘制所有内容,但您可以了解;))

JS与浏览器运行在同一个线程中。这可能是因为绘图太占用cpu了。是的,使用超时/间隔让浏览器在绘制之间做一些其他的事情。

您需要使用setTimeout()或setInterval()来减缓绘图速度并避免浏览器冻结:)