使用jQuery異步加載 JavaScript腳本解決方案
更新時(shí)間:2014年04月20日 15:09:59 作者:
這篇文章主要介紹了如何使用jQuery異步加載JavaScript腳本,需要的朋友可以參考下
JavaScript 加載器在 Web 開(kāi)發(fā)中是非常強(qiáng)大和有用的工具。目前流行的幾個(gè)加載器,像 curljs、LABjs 和 RequireJS 使用都很廣泛。他們功能強(qiáng)大的,但有些情況下可以有更簡(jiǎn)單的方案。
如果你正在使用 jQuery,有一個(gè)內(nèi)置的方法可以用來(lái)加載腳本。如果你想延遲加載插件或任何其他類型的腳本,都可以使用這種方法。下面給大家介紹如何使用它。
實(shí)現(xiàn)方法
jQuery 內(nèi)置有 getScript 方法來(lái)加載一個(gè)腳本,處理返回的結(jié)果可以有幾種方法來(lái)實(shí)現(xiàn)。最基本的用法 jQuery.getScript 看起來(lái)像這樣:
jQuery.getScript("/path/to/myscript.js", function(data, status, jqxhr) {
/*
在腳本已載入并執(zhí)行后,就可以做一些處理了
*/
});
getScript 方法返回一個(gè) jqXHR 對(duì)象,因此可以這樣使用:
jQuery.getScript("/path/to/myscript.js")
.done(function() {
/* 執(zhí)行成功后的處理 */
})
.fail(function() {
/* 執(zhí)行失敗后的處理 */
});
使用 jQuery.getScript 的最常見(jiàn)場(chǎng)景是延遲加載一個(gè)插件,并在加載后調(diào)用它:
jQuery.getScript("jquery.cookie.js")
.done(function() {
jQuery.cookie("cookie_name", "value", { expires: 7 });
});
如果你需要做更高級(jí)的事情,如加載多個(gè)腳本和不同類型的文件(文本文件,圖像,CSS 文件等),我建議你切換到一個(gè)功能更強(qiáng)大的 JavaScript 加載器。如果只想延遲加載插件,而不是簡(jiǎn)單地在每個(gè)頁(yè)面加載的情況下,getScript 是完美的!
緩存問(wèn)題
需要注意的是,當(dāng)使用 jQuery.getScript 的時(shí)候,在腳本 URL 后面會(huì)自動(dòng)被添加上時(shí)間戳,讓腳本不緩存。因此你需要設(shè)置讓所有的請(qǐng)求都緩存腳本:
jQuery.ajaxSetup({
cache: true
});
如果您不希望覆蓋所有的緩存與你的 AJAX 請(qǐng)求,最好使用 jQuery.ajax 方法并把 dataType 設(shè)置為 script,例如這樣:
jQuery.ajax({
url: "jquery.cookie.js",
dataType: "script",
cache: true
}).done(function() {
jQuery.cookie("cookie_name", "value", { expires: 7 });
});
在加載腳本的時(shí)候需要特別注意緩存問(wèn)題!
如果你正在使用 jQuery,有一個(gè)內(nèi)置的方法可以用來(lái)加載腳本。如果你想延遲加載插件或任何其他類型的腳本,都可以使用這種方法。下面給大家介紹如何使用它。
實(shí)現(xiàn)方法
jQuery 內(nèi)置有 getScript 方法來(lái)加載一個(gè)腳本,處理返回的結(jié)果可以有幾種方法來(lái)實(shí)現(xiàn)。最基本的用法 jQuery.getScript 看起來(lái)像這樣:
復(fù)制代碼 代碼如下:
jQuery.getScript("/path/to/myscript.js", function(data, status, jqxhr) {
/*
在腳本已載入并執(zhí)行后,就可以做一些處理了
*/
});
getScript 方法返回一個(gè) jqXHR 對(duì)象,因此可以這樣使用:
復(fù)制代碼 代碼如下:
jQuery.getScript("/path/to/myscript.js")
.done(function() {
/* 執(zhí)行成功后的處理 */
})
.fail(function() {
/* 執(zhí)行失敗后的處理 */
});
使用 jQuery.getScript 的最常見(jiàn)場(chǎng)景是延遲加載一個(gè)插件,并在加載后調(diào)用它:
復(fù)制代碼 代碼如下:
jQuery.getScript("jquery.cookie.js")
.done(function() {
jQuery.cookie("cookie_name", "value", { expires: 7 });
});
如果你需要做更高級(jí)的事情,如加載多個(gè)腳本和不同類型的文件(文本文件,圖像,CSS 文件等),我建議你切換到一個(gè)功能更強(qiáng)大的 JavaScript 加載器。如果只想延遲加載插件,而不是簡(jiǎn)單地在每個(gè)頁(yè)面加載的情況下,getScript 是完美的!
緩存問(wèn)題
需要注意的是,當(dāng)使用 jQuery.getScript 的時(shí)候,在腳本 URL 后面會(huì)自動(dòng)被添加上時(shí)間戳,讓腳本不緩存。因此你需要設(shè)置讓所有的請(qǐng)求都緩存腳本:
復(fù)制代碼 代碼如下:
jQuery.ajaxSetup({
cache: true
});
如果您不希望覆蓋所有的緩存與你的 AJAX 請(qǐng)求,最好使用 jQuery.ajax 方法并把 dataType 設(shè)置為 script,例如這樣:
復(fù)制代碼 代碼如下:
jQuery.ajax({
url: "jquery.cookie.js",
dataType: "script",
cache: true
}).done(function() {
jQuery.cookie("cookie_name", "value", { expires: 7 });
});
在加載腳本的時(shí)候需要特別注意緩存問(wèn)題!
您可能感興趣的文章:
- jquery zTree異步加載簡(jiǎn)單實(shí)例分享
- JQuery異步加載無(wú)限下拉框級(jí)聯(lián)功能實(shí)現(xiàn)示例
- 自寫的jQuery異步加載數(shù)據(jù)添加事件
- jQuery異步加載數(shù)據(jù)并添加事件示例
- struts2+jquery+json實(shí)現(xiàn)異步加載數(shù)據(jù)(自寫)
- MVC Ajax Helper或Jquery異步加載部分視圖
- 如何使用PHP+jQuery+MySQL實(shí)現(xiàn)異步加載ECharts地圖數(shù)據(jù)(附源碼下載)
- jquery zTree異步加載、模糊搜索簡(jiǎn)單實(shí)例分享
- JQuery異步加載PartialView的方法
相關(guān)文章
IE中jquery.form中ajax提交沒(méi)反應(yīng)解決方法分享
用jquery form插件,進(jìn)行ajax提交,本來(lái)可以用,好好地,突然發(fā)現(xiàn),firefox,opera等可以提交,ie的success函數(shù)運(yùn)行了2012-09-09基于jQuery UI CSS Framework開(kāi)發(fā)Widget的經(jīng)驗(yàn)
jQuery UI CSS Framework是jQuery UI中的一個(gè)樣式框架,可以利用jQuery Theme roller 來(lái)生成自己想要的css樣式效果。我們可以利用jQuery UI的一些框架來(lái)開(kāi)發(fā)出基于jQuery UI CSS Framework效果的插件來(lái)。2010-08-08jquery之a(chǎn)jaxfileupload異步上傳插件(附工程代碼)
在處理文件上傳時(shí)需要使用到文件的異步上傳,這里使用Jquery Ajax File Uploader這個(gè)組件,服務(wù)器端采用struts2來(lái)處理文件上傳2013-04-04jQuery實(shí)現(xiàn)簡(jiǎn)單的按鈕顏色變化
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)簡(jiǎn)單的按鈕顏色變化,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08Jquery中LigerUi的彈出編輯框(實(shí)現(xiàn)方法)
本篇文章是對(duì)Jquery中LigerUi的彈出編輯框的實(shí)現(xiàn)方法進(jìn)行了分析介紹,需要的朋友可以參考下2013-07-07JQuery給元素添加/刪除節(jié)點(diǎn)比如select
本教程詳細(xì)介紹下jQuery添加/刪除Select的Option項(xiàng),感興趣的各位可以參考下哈2013-04-04