0
SO問題(load-and-execution-sequence-of-a-web-page)給出了html頁面執行順序的細節。它聲明 - 腳本標籤是用單線程順序執行的。Javascript執行順序
我已經在我的網頁下面的代碼:
if(booleanTest)eval('parent.'+callback+'();');
parent.hideWin();
return false;
假設回調方法具有簡單,而循環,跑了很多次(例如:30K次),我注意到, hideWin甚至在回調甚至完成之前得到執行(在IE7上測試)
問題是 - 如果執行是連續的,那麼爲什麼上述行爲到位 - 是否是瀏覽器特有的?
你怎麼確定回調執行完成?也許瀏覽器正試圖優化大量的UI操作,並延遲重新渲染回調的某些效果,並且hideWin調用會被迭代一次? – Yuliy
注意你很少需要'eval'。在這種情況下,您可以使用以下事實:可以使用字符串鍵訪問對象屬性:'if(booleanTest){parent [callback](); }'。如果'callback'實際上並不是一個命名在parent上定義的方法的字符串,那麼parent.hideWin()執行得如此之快的原因是'eval'-ed腳本失敗了。 – outis
+1爲了擺脫1995年常見的財產訪問問題,我很驚訝現在人們還在寫這篇文章 –