国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

jquery getScript動(dòng)態(tài)加載JS方法改進(jìn)詳解

巴扎黑
發(fā)布: 2017-07-03 10:09:48
原創(chuàng)
1651人瀏覽過(guò)

有許多朋友需要使用getscript方法動(dòng)態(tài)加載js,本文將詳細(xì)介紹此功能的實(shí)現(xiàn)方法

復(fù)制代碼?

$.getScript(url,callback)?

這個(gè)方法是jquery自身提供的一個(gè)用于動(dòng)態(tài)加載js的方法。當(dāng)網(wǎng)站需要加載大量js時(shí),動(dòng)態(tài)的加載js就是一個(gè)比較好的方法,當(dāng)需要某個(gè)功能時(shí)再將相應(yīng)的js加載進(jìn)來(lái)。
但是自己在使用過(guò)程中卻發(fā)現(xiàn)了一些不盡如意的地方。


每次需要執(zhí)行該功能的時(shí)候都會(huì)去請(qǐng)求一次這個(gè)js,這樣不是在幫倒忙嘛?
于是找到Jquery官網(wǎng)的API說(shuō)明 http://api.jquery.com/jQuery.getScript/
其實(shí)這個(gè)方法就是對(duì)ajax方法的一個(gè)封裝,可以使用ajax方法的緩存來(lái)將http狀態(tài)200變成304,從而使用客戶(hù)端的緩存:

代碼如下:

$.ajaxSetup({
cache: true
});


于是,會(huì)發(fā)現(xiàn)每次調(diào)用這個(gè)功能的時(shí)候,變成了如下所示:


每次調(diào)用js時(shí)后面的類(lèi)似"?_=13126578"的參數(shù)已經(jīng)沒(méi)有了,并且狀態(tài)都是Not Modified。
但是我有點(diǎn)“潔癖”,每次使用這個(gè)功能,雖說(shuō)服務(wù)端不用再返回整個(gè)js文件了,但是每次還是得請(qǐng)求一次服務(wù)器,總覺(jué)得不舒服。于是便誕生了這篇博客的標(biāo)題。
不多說(shuō),先上代碼:

代碼如下:

<!DOCTYPE html > 
<html> 
<head> 
<meta charset="utf-8"> 
<title></title> 
<script src="jquery-1.7.2.min.js" type="text/
javascript
"></script> 
<script type="text/javascript"> 
//定義一個(gè)全局script的標(biāo)記數(shù)組,用來(lái)標(biāo)記是否某個(gè)script已經(jīng)下載到本地 
var scriptsArray = new Array(); 
$.cachedScript = function (url, options) { 
//
循環(huán)
script標(biāo)記數(shù)組 
for (var s in scriptsArray) { 
//console.log(scriptsArray[s]); 
//如果某個(gè)數(shù)組已經(jīng)下載到了本地 
if (scriptsArray[s]==url) { 
return { //則返回一個(gè)
對(duì)象
字面量,其中的done之所以叫做done是為了與下面$.ajax中的done相對(duì)應(yīng) 
done: function (method) { 
if (typeof method == 'function'){ //如果傳入?yún)?shù)為一個(gè)方法 
method(); 
} 
} 
}; 
} 
} 
//這里是jquery官方提供類(lèi)似getScript實(shí)現(xiàn)的方法,也就是說(shuō)getScript其實(shí)也就是對(duì)ajax方法的一個(gè)拓展 
options = $.extend(options || {}, { 
dataType: "script", 
url: url, 
cache:true //其實(shí)現(xiàn)在這緩存加與不加沒(méi)多大區(qū)別 
}); 
scriptsArray.push(url); //將url地址放入script標(biāo)記數(shù)組中 
return $.ajax(options); 
}; 
$(function () { 
$('#btn').bind('click', function () { 
$.cachedScript('t1.js').done(function () { 
alertMe(); 
}); 
}); 
$('#btn2').bind('click', function () { 
$.getScript('t1.js').done(function () { 
alertMe(); 
}); 
}); 
}); 
</script> 
</head> 
<body> 
<button id="btn">自定義的緩存方法</button> 
<br /> 
<button id="btn2">getScript</button> 
</body> 
</html>
登錄后復(fù)制


其中t1.js中代碼也就是一個(gè)函數(shù)

代碼如下:

function alertMe() {
alert('clicked me');
}


到這里,整個(gè)改造就完成了,當(dāng)你使用這個(gè)功能的時(shí)候,只會(huì)在初始化的時(shí)候向服務(wù)器發(fā)出一次js的請(qǐng)求,而加載完成后,就不會(huì)再次請(qǐng)求服務(wù)器了,哪怕是304狀態(tài)碼也不會(huì)有了。
?
js菜鳥(niǎo)一枚,還請(qǐng)各位輕拍,O(∩_∩)O~

以上就是jquery getScript動(dòng)態(tài)加載JS方法改進(jìn)詳解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件
最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件

每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。

下載
來(lái)源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問(wèn)題
開(kāi)源免費(fèi)商場(chǎng)系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)