實用技巧:使用 jQuery 異步加載 JavaScript 腳本


  JavaScript 加載器在 Web 開發中是非常強大和有用的工具。目前流行的幾個加載器,像 curljs、LABjs 和 RequireJS 使用都很廣泛。他們功能強大的,但有些情況下可以有更簡單的方案。

  如果你正在使用 jQuery,有一個內置的方法可以用來加載腳本。如果你想延遲加載插件或任何其他類型的腳本,都可以使用這種方法。下面給大家介紹如何使用它。

實現方法

  jQuery 內置有 getScript 方法來加載一個腳本,處理返回的結果可以有幾種方法來實現。最基本的用法 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 的最常見場景是延遲加載一個插件,並在加載后調用它:

jQuery.getScript("jquery.cookie.js")
	.done(function() {
		jQuery.cookie("cookie_name", "value", { expires: 7 });
});

  如果你需要做更高級的事情,如加載多個腳本和不同類型的文件(文本文件,圖像,CSS 文件等),我建議你切換到一個功能更強大的 JavaScript 加載器。如果只想延遲加載插件,而不是簡單地在每個頁面加載的情況下,getScript 是完美的!

緩存問題

  需要注意的是,當使用 jQuery.getScript 的時候,在腳本 URL 后面會自動被添加上時間戳,讓腳本不緩存。因此你需要設置讓所有的請求都緩存腳本:

jQuery.ajaxSetup({
  cache: true
});

  如果您不希望覆蓋所有的緩存與你的 AJAX 請求,最好使用 jQuery.ajax 方法並把 dataType 設置為 script,例如這樣:

jQuery.ajax({
      url: "jquery.cookie.js",
      dataType: "script",
      cache: true
}).done(function() {
		jQuery.cookie("cookie_name", "value", { expires: 7 });
});

  在加載腳本的時候需要特別注意緩存問題!

 

您可能感興趣的相關文章

  

英文鏈接:Loading Scripts with jQuery via davidwalsh

編譯來源:夢想天空 ◆ 關注前端開發技術 ◆ 分享網頁設計資源


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM