javascript代碼性能優(yōu)化總結(jié)篇_javascript技巧

javascript代碼性能優(yōu)化總結(jié)篇_javascript技巧

ID:30778764

大?。?5.53 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2019-01-03

javascript代碼性能優(yōu)化總結(jié)篇_javascript技巧_第1頁(yè)
javascript代碼性能優(yōu)化總結(jié)篇_javascript技巧_第2頁(yè)
javascript代碼性能優(yōu)化總結(jié)篇_javascript技巧_第3頁(yè)
javascript代碼性能優(yōu)化總結(jié)篇_javascript技巧_第4頁(yè)
javascript代碼性能優(yōu)化總結(jié)篇_javascript技巧_第5頁(yè)
資源描述:

《javascript代碼性能優(yōu)化總結(jié)篇_javascript技巧》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、JavaScript代碼性能優(yōu)化總結(jié)篇下面是我總結(jié)的一些小技巧,僅供參考。以下代碼基木上在jQuery的源碼里面都可以看到,如有說(shuō)得不對(duì)的地方,請(qǐng)大家指出。盡量使用源生方法JavaScript是解釋性語(yǔ)言,相比編譯性語(yǔ)言執(zhí)行速度要慢。瀏覽器已經(jīng)實(shí)現(xiàn)的方法,就不要再去實(shí)現(xiàn)一遍了。另外,瀏覽器已經(jīng)實(shí)現(xiàn)的方法在算法方面已經(jīng)做了很多優(yōu)化。免全局查找在一個(gè)函數(shù)中會(huì)用到全局對(duì)象存儲(chǔ)為局部變量來(lái)減少全局杳找,因?yàn)樵L問(wèn)局部變量的速度要比訪問(wèn)全局變量的速度更快些。functionsearch(){//當(dāng)我要使用當(dāng)前頁(yè)面地址和主機(jī)域名alert(window.locatio

2、n.href+window?location?host);}//最好的方式是如下這樣先用一個(gè)簡(jiǎn)單變塑保存起來(lái)functionsearch(){varlocationwindow.location;alert(location.href+location.host);}盡量減少循環(huán)次數(shù)少一層循環(huán),就能提高數(shù)倍性能。如果要對(duì)一個(gè)數(shù)組的每個(gè)元索進(jìn)行多次操作,盡可能使用一次循環(huán),多次操作,而不是多次循環(huán),每次循環(huán)執(zhí)行一次操作。尤其是在進(jìn)行多個(gè)正則匹配的時(shí)候,盡可能合并正則表達(dá)式,在一次遍丿力屮盡可能找到相應(yīng)的匹配。循環(huán)//通常循環(huán)的寫法:varobjs=[obj

3、obj2,obj3]#i-0;len=objs?length;for(i?0;i

4、(con){case1:funa();break;casefb1:funb();break;case:14func();rUbreak;1}1718//換種寫法試試:1920functionfuna(){}21functionfunb(){)22functionfunc(){}23varfuns={241a1:funa,251b*:funb,261c1:func27};28funs[con]();2930//備注:取值或函數(shù)調(diào)用可以用類似的方法來(lái)做。條件分支將條件分支,按口J能性順序從高到低排列:口J以減少解釋器對(duì)條件的探測(cè)次數(shù)。在同一條件>2條件分支時(shí)

5、,使用switch優(yōu)于if:switch分支選擇的效率高于if,在IE下尤為明顯。4條分支的測(cè)試,IE下switch的執(zhí)行時(shí)間約為if的一半。使用三目運(yùn)算符替代條件分支。if(a>b){2num=a;o}else{4num=b;5}6a//換種寫法試試:89num=a>b?a:b;定時(shí)器如果針對(duì)的是不斷運(yùn)行的代碼,不應(yīng)該使用setTimeout,ifij應(yīng)該是用setinterval,因?yàn)閟etTimeout每一次都會(huì)初始化一個(gè)定時(shí)器,而setinterval只會(huì)在開始的吋候初始化一個(gè)定吋器。定吋器vartimeoutTimes*0;functionti

6、meout(){timeoutTimes+4-;4if(timeoutTimes<10){setTimeout(timeoutr10);617}timeout();o//可以替換為:2varintervalTimes-0;3functioninterval(){intervalTimes4-4-;4if(intervalTimes>-10){clearInterval(interv);6}7}varintervsetlntcrval(interval,10);創(chuàng)建對(duì)象的另外一個(gè)辦法-不使用new//我們要連續(xù)創(chuàng)建一些簡(jiǎn)單的obj巳ct對(duì)象,并且擁有默認(rèn)的

7、屬性,會(huì)這么寫:functionjason{){this?propa=r1;this.propb=[];this.propc=0;}varobjs?[],i-0,obj;while(i<100){obj一newjason{);obj.propc-i;objs?push(obj);}//換種寫法試試:functionjason(){return{propa:11,propb:【],propc:0};}varobjs-[]fi-0robj;while(i<100){obj-jason();obj?propc■i;objs?push(obj);}//備注:還有

8、直接聲明的方式,但是復(fù)用性會(huì)差一些。用做標(biāo)記的變量盡可能使用布爾類型直接用tru

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。