使用jQuery動態加載js腳本文件的方法

動態加載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 });
});

發佈了60 篇原創文章 · 獲贊 29 · 訪問量 47萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章