動態加載Javascript是一項非常強大且有用的技術。這方面的主題在網上已經討論了不少,我也經常會在一些個人項目上使用RequireJS和Dojo加載js
它們很強大,但有時候也會得不償失。如果你使用的是jQuery,它裡面有一個內置的方法可以用來加載單個js文件。當你需要延遲加載一些js插件或其它類型的文件時,可以使用這個方法。下面就介紹一下如何使用它! 一、jQuery getScript()方法加載JavaScript jQuery內置了一個方法可以加載單一的js文件;當加載完成後你可以在回調函數裡執行後續操作。最基本的使用jQuery.getScript的方法是這樣: 代碼如下: jQuery.getScript("/path/to/myscript.js", function(data, status, jqxhr) { /* 做一些加載完成後需要執行的事情 */ }); 這個getScript方法返回一個jqxhr,你可以像下面這樣用它: 代碼如下: jQuery.getScript("/path/to/myscript.js") .done(function() { /* 耶,沒有問題,這裡可以干點什麼 */ }) .fail(function() { /* 靠,馬上執行挽救操作 */ }); 最常見的使用jQuery.getScript的地方是延遲加載一個js插件,而且在加載完成時執行它: 復制代碼 代碼如下: jQuery.getScript("jquery.cookie.js") .done(function() { jQuery.cookie("cookie_name", "value", { expires: 7 }); }); 二、緩存問題 有一個非常重要的問題,使用jQuery.getScript時,你需要用一個時間戳字符串跟在需要加載的js地址後面,防止它被緩存。但是,如果你希望這個腳本被緩存,你需要設置全局緩存變量,像下面這樣: 復制代碼 代碼如下: jQuery.ajaxSetup({ cache: true }); 代碼如下: jQuery.ajax({ url: "jquery.cookie.js", dataType: "script", cache: true }).done(function() { jQuery.cookie("cookie_name", "value", { expires: 7 }); }); 在加載腳本時一定要小心緩存問題!