我用這個命中了死衚衕,我的腦袋已經半天了。這個問題很奇怪,如果你願意查看我的源代碼:www.modwebsolutions.com/test2(警告:尚未優化,可能會鎖定瀏覽器幾秒鐘)。問題是,在Opera中setTimeouts的這個序列可以正常工作,但是在其他瀏覽器中只有第一個被執行,然後停止腳本的執行。從我的代碼Exerpt:setTimeout在Opera中可用,但在其他瀏覽器中不可用
var a1=setTimeout(drawVertical([arguments]),1000);
var b1=setTimeout(drawVertical([arguments]),1000);
var c1=setTimeout(drawVertical([arguments]),1000);
var d1=setTimeout(drawVertical([arguments)],1000);
嘗試一切,在引號引起的功能,尋找其他的語法錯誤,沒有任何幫助。正如我所說的那樣奇怪的是 - 在Opera中一切正常。 UPDATE:也適用於Chrome瀏覽器,這使得它更加混亂......
UPDATE2:同樣的例子沒有超時,工作得很好(雖然慢):www.modwebsolutions.com/test
嘗試了匿名函數方法 - 它在幾乎所有的瀏覽器上都能正常工作,但是......瀏覽器速度更慢,而且最奇怪的是 - 所有該函數產生的線條也有一些厚厚的黑色陰影,這完全無法解釋並且不合邏輯。 setTimeout與畫布線樣式有什麼共同之處?... – Caballero 2011-04-23 20:25:16
'setTimeout'不會導致瀏覽器變慢,但也許你調用的次數比你想象的要多,因此調用'drawVertical'比你多認爲?也許粗黑線是在同一地點附近多次畫線的結果?我會在某處放置一個'alert'或者一個'console.log'來確保這個函數按照它應該的方式行事。 – 2011-04-24 06:31:47