2010-08-24 130 views
1

我越使用JavaScript,我越試圖想出加載和執行腳本的有效方法。 我發現一個非常有用的方法是無阻塞地加載JavaScript。使用非阻塞腳本

function include_js(url) { 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src = url; 
    document.getElementsByTagName("head")[0].appendChild(script); 
} 

include_js('script.js'); 

JavaScript也有一個窗口方法,在頁面加載時執行。

window.onload = function() { 
alert('Script executed onload'); 
}; 

我想知道的是,如何在瀏覽器治療腳本由在window.onload方法執行什麼,是阻塞或非阻塞的腳本?

回答

1

我想知道的是,如何在 瀏覽器治療腳本由 在window.onload方法執行什麼,是阻止 或非阻塞的腳本?

你是指如何執行事件處理程序中的代碼?它是異步運行的,但由於JavaScript只有一個線程,它是塊,並且在線程可用之前將被阻塞。

請參閱this article about how timers work以更好地瞭解異步方法在單線程環境中的行爲。

讓JavaScript代碼與其他JavaScript代碼並行執行的唯一方法是使用webworkers,它實際上使用單獨的線程。

+0

謝謝你的鏈接,這是我正在尋找的答案。 – 2010-08-24 08:02:08

1

它是非阻塞的。您只需將一個變量分配給一個函數,並繼續執行其他腳本。一旦DOM被加載,分配的回調被調用。