2011-04-23 101 views
0

我有一個使用Javascript(window.onload事件)呈現的畫布透視網格的草稿網站,但是當在任何最新的瀏覽器上加載網站時 - 瀏覽器至少凍結幾秒鐘,甚至用戶界面不響應。該腳本由6個循環組成,總共超過200次迭代,每個循環繪製一條線。我怎樣才能避免凍結?每次迭代後或每次循環後設置超時時間?它可能是帆布問題?瀏覽器死機是因爲(太重?)JavaScript,canvas渲染

www.modwebsolutions.com/test(在渲染過程中會鎖定瀏覽器)

+0

heh ..在背景畫布上的「視圖圖像」崩潰我的firefox。 – ThiefMaster 2011-04-23 15:07:21

+0

對於它的價值,我只能在這裏看到這幾秒鐘在Opera中凍結。 Firefox,Safari和Chrome立即呈現。 – 2011-04-23 17:20:39

+0

這裏沒有任何滯後,除了在頁面繪製之前稍作停頓。 – Reid 2011-04-23 18:07:11

回答

0

好吧,是的,畫布是非常優化的。你的畫布也相當大;)

是的,你可以進一步推遲繪製,所以CPU可以照顧瀏覽器的輸入,從而降低了凍結;)

見:http://pastehtml.com/view/1e7dan3.html(它不是畫的一切,但你可以得到的點;))

+0

Canvas在Linux上至少使用一些驅動程序(nvidia二進制驅動程序)以及Windows Vista和Windows 7上的IE9或Firefox 4中的GPU。 – 2011-04-23 17:18:13

+0

謝謝,編輯它。對不起,誤導性的信息。 – trakos 2011-04-23 18:06:54

0

JS運行在同一個線程中的瀏覽器。所以這可能是因爲繪圖太密集。是的,使用超時/間隔讓瀏覽器在繪圖之間做一些其他的事情。

3

對我來說它工作得很好。

你可以做的事情是,委託渲染到網絡工作者,那麼你的「主線」是免費爲用戶交互

0

您需要使用的setTimeout()或setInterval的()繪製緩慢和避免瀏覽器凍結:)