2011-05-28 34 views
0

我正在閱讀非阻塞加載方式javascript.I出現了一些有趣的概念,特別是對我來說一個新的概念。腳本延遲屬性。JavaScript動態腳本創建vs腳本推遲

我知道動態創建腳本並將它們插入文檔的頭部,我有一個函數。

例如:

function loadJS(loc){ 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src = loc 
} 

我已經看到了這defer屬性和林不知道如何使用它以及它的主要優勢/劣勢?

在此先感謝你們!

+0

請參閱http://stackoverflow.com/questions/5250412/how-exactly-does-script-defer-defer-work – serg 2011-05-28 17:06:19

回答

2

我一直在尋找類似的答案,並發現一個問題,當我發現this stackoverflow question - 和你的。

所以這是我發現了:

  • 腳本defer方法提示到瀏覽器要等到文件已經執行該腳本前完成加載。但它仍然首先加載腳本(假設它們位於文檔的HEAD中)。
  • jQuery有一個.getScript()方法,可用於隨時隨地加載任意數量的腳本。例如,您甚至可以將它應用於鏈接上的onClick事件!
  • 也有幾個庫旨在動態,非阻塞加載,如LABjsRequireJSHEADjs

我想這取決於你哪種方法你選擇,如果你只是一個小項目,並已經在使用和/或用於使用jQuery那麼我會與該走了。否則,可以查看其中一個庫。

然而,只是再次聲明,盡我所知DEFER不會阻止加載腳本時的頁面阻塞。但是一個典型的非常簡單的解決方案是將所有腳本包含在頁腳中而不是HEAD中。


人們請隨時糾正我,如果我在上面的任何錯誤! - 謝謝