版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、15個(gè)值值得開(kāi)發(fā)發(fā)人員關(guān)關(guān)注的jjQueery開(kāi)開(kāi)發(fā)技巧巧和心得得很多jQQuerry開(kāi)發(fā)發(fā)人員可可能不知知道開(kāi)發(fā)發(fā)技巧,下下面筆者者總結(jié)了了15個(gè)個(gè)值得開(kāi)開(kāi)發(fā)人員員關(guān)注的的jQuueryy開(kāi)發(fā)技技巧和心心得,供供大家學(xué)學(xué)習(xí)和參參考,希希望對(duì)開(kāi)開(kāi)發(fā)人員員有所幫幫助: 1. 盡盡量使用用最新版版本的jjQueery類類庫(kù)jQueery項(xiàng)項(xiàng)目中使使用了大大量的創(chuàng)創(chuàng)新。最最好的方方法來(lái)提提高性能能就是使使用最新新版本的的jQuueryy。每一一個(gè)新的的版本都都包含了了優(yōu)化的的bugg修復(fù)。對(duì)我們們來(lái)說(shuō)唯唯一要干干的就是是修改ttag,何何樂(lè)而不不為呢?我們也可可以使用用免費(fèi)的的CDNN服務(wù),例例如,
2、 Goooglee來(lái)存放放jQuueryy類庫(kù)。 2. 使使用簡(jiǎn)單單的選擇擇器直到最近近,返回回DOMM元素的的方式都都是解析析選擇器器字符串串,jaavasscriipt循循環(huán)和內(nèi)內(nèi)建的jjavaascrriptt APPI例如如,geetEllemeentbbyIdd(),ggetEElemmenttsByyTaggNamme(),geetEllemeentssByCClasssNaame()三種種方式的的整合使使用。但但是現(xiàn)代代瀏覽器器都開(kāi)始始支持qquerrySeelecctorrAlll(),這這個(gè)方法法能夠理理解CSSS查詢?cè)兤?,而而且能帶帶?lái)顯著著的性能能提升。然而,我我們應(yīng)該該
3、避免使使用復(fù)雜雜的選擇擇器返回回元素。更不用用說(shuō)很多多用戶使使用老版版本的瀏瀏覽器,強(qiáng)強(qiáng)迫jQQuerry去處處理DOOM樹(shù)。這個(gè)方方式非常常慢。$(lliddataa-seelecctedd=ttruee a) / Faancyy, bbut sloow $(lli.sseleecteed aa) / Bettterr $(#eleem) / Beest 選擇idd是最快快速的方方式。如如果你需需要使用用claass名名稱, 那么你你最好帶帶上taag名稱稱,這樣樣會(huì)更快快些。特特別是在在老瀏覽覽器和移移動(dòng)設(shè)備備上。訪問(wèn)DOOM是jjavaascrriptt應(yīng)用最最慢的方方式 ,因因此盡量量
4、少使用用。使用用變量去去保存選選擇器,這這樣會(huì)使使用caachee來(lái)保存存。性能能更好。var butttonns = $(#nnaviigattionn a.butttonn); / Soome preeferr prrefiixinng ttheiir jjQueery varriabbless wiith $: varr $bbutttonss = $(#naaviggatiion a.bbuttton); 另外一個(gè)個(gè)值得做做的是jjQueery給給了你很很多的額額外便利利選擇器器 ,例例如,:vissiblle,:hidddenn,:aanimmateed還有有其它,這這些不是是合法的
5、的CSSS3選擇擇器。結(jié)結(jié)果是你你使用這這些類庫(kù)庫(kù)就不能能有效地地利用qquerrySeelecctorrAlll()方方法。為為了彌補(bǔ)補(bǔ)這個(gè)問(wèn)問(wèn)題,你你需要先先選擇元元素,再再過(guò)濾,如如下:$(aa.buuttoon:aanimmateed); / DDoess noot uuse queerySSeleectoorAlll() $(aa.buuttoon).fiilteer(:annimaatedd); / Usses it 3. 數(shù)數(shù)組方式式使用jjQueery對(duì)對(duì)象運(yùn)行選擇擇器的結(jié)結(jié)果是一一個(gè)jQQuerry對(duì)象象。然而而,jQQuerry類庫(kù)庫(kù)讓你感感覺(jué)你正正在使用用一個(gè)定定義了ii
6、ndeex和長(zhǎng)長(zhǎng)度的數(shù)數(shù)組。/ SSeleectiing alll thhe nnaviigattionn buuttoons: vaar bbutttonss = $(#naaviggatiion a.bbuttton); / We cann looop thooughh thhe ccolllecttionn: ffor(varr i=;ibutttonns.llenggth;i+) conssolee.loog(bbutttonssi); / A DDOM eleemennt, nott a jQuueryy obbjecct / Wee caan eevenn sllicee itt:
7、 vvar firrstFFourr = butttonns.sslicce(,4); 如果性能能是你關(guān)關(guān)注的,那那么使用用簡(jiǎn)單ffor或或者whhilee循環(huán)來(lái)來(lái)處理,而而不是$.eaach(),這這樣能使使你的代代碼更快快。檢查長(zhǎng)度度也是一一個(gè)檢查查你的ccolllecttionn是否含含有元素素的方式式。if(bbutttonss) / Thiis iis aalwaays truue / DDo ssomeethiing iif(bbutttonss.leengtth) / Trrue onlly iif bbutttonss coontaainss ellemeentss / DDo
8、 ssomeethiing 4. 選選擇器屬屬性jQueery提提供了一一個(gè)屬性性,這個(gè)個(gè)屬性顯顯示了用用來(lái)做鏈鏈?zhǔn)降倪x選擇器。$(#conntaiinerr lii:fiirstt-chhildd).sellecttor / #coontaaineer lli:ffirsst-cchilld $(#conntaiinerr lii).fillterr(:firrst-chiild).sseleectoor / #conntaiinerr lii.fiilteer(:firrst-chiild) 雖然上面面的例子子針對(duì)同同樣的元元素,選選擇器則則完全不不一樣。第二個(gè)個(gè)實(shí)際上上是非法法的,你你不
9、可以以使用它它來(lái)創(chuàng)建建一個(gè)對(duì)對(duì)象。只只能用來(lái)來(lái)顯示ffiltter方方法是用用來(lái)縮小小colllecctioon。5. 創(chuàng)創(chuàng)建一個(gè)個(gè)空的jjQueery對(duì)對(duì)象創(chuàng)建一個(gè)個(gè)新的jjQueery空空間能極極大的減減小開(kāi)銷銷。有時(shí)時(shí)候,你你可能需需要?jiǎng)?chuàng)建建一個(gè)空空的對(duì)象象,然后后使用aadd()方法法添加對(duì)對(duì)象。var conntaiinerr = $(); conttainner.addd(annothher_eleemennt); 這也是qquicckEaach方方法的基基礎(chǔ),你你可以使使用這種種更快的的方式而而非eaach()。6. 選選擇一個(gè)個(gè)隨機(jī)元元素上面我提提到過(guò),jjQueery添添加它
10、自自己的選選擇器過(guò)過(guò)濾。除除了類庫(kù)庫(kù),你可可以添加加自己的的過(guò)濾器器。只需需要添加加一個(gè)新新的方法法到$.exppr:對(duì)象。一個(gè)非非常棒的的使用方方式是WWalddek Masstykkarzz的博客客中提到到的:創(chuàng)創(chuàng)建一個(gè)個(gè)用來(lái)返返回隨機(jī)機(jī)元素的的選擇器器。你可可以修改改下面代代碼:(funnctiion($) var ranndomm = ; $.exxpr:.rranddom = ffuncctioon(aa, ii, mm, rr) if (i = ) randdom = MMathh.flloorr(Maath.ranndomm() * rr.leengtth); retuurn i
11、 = rranddom; ; )(jjQueery); / TThiss iss hoow yyou usee itt: $(lli:rranddom).aaddCClasss(gloow); 7. 使使用CSSS HHookksCSS hoooks APII是提供供開(kāi)發(fā)人人員得到到和設(shè)置置特定的的CSSS數(shù)值的的方法。使用它它,你可可以隱藏藏瀏覽器器特定的的執(zhí)行并并且使用用一個(gè)統(tǒng)統(tǒng)一的界界面來(lái)存存取特定定的屬性性。$.csssHoookssbbordderRRadiius = get: fuuncttionn(ellem, coompuutedd, eextrra) / DDepeendii
12、ng on thee brrowsser, reead thee vaaluee off / -mozz-boordeer-rradiius, -wwebkkit-borrderr-raadiuus oor bbordder-raddiuss , set: fuuncttionn(ellem, vaaluee) / SSet thee appproopriiatee CSSS3 prooperrty ; / Usse iit wwithhoutt woorryyingg whhichh prropeertyy thhe bbrowwserr acctuaallyy unnderrstaands
13、s: $(#recct).csss(borrderrRaddiuss,55); 更好的在在于,人人們已經(jīng)經(jīng)創(chuàng)建了了一個(gè)支支持CSSS hhookks類庫(kù)庫(kù)8. 使使用自定定義的緩緩動(dòng)方法法你可能聽(tīng)聽(tīng)到過(guò)jjQueery的的緩動(dòng)插插件,它它能夠允允許你給給你的動(dòng)動(dòng)畫添加加特效。唯一的的缺點(diǎn)是是你的訪訪問(wèn)者需需要加載載另外一一個(gè)jaavasscriipt文文件。幸幸運(yùn)的是是,你可可以簡(jiǎn)單單的從插插件拷貝貝效果,并并且添加加到j(luò)QQuerry.eeasiing對(duì)對(duì)象中,如如下:$.eaasinng.eeaseeInOOutQQuadd = funnctiion (x, t, b, c, d) if
14、(t/=d/2) 11) rretuurn c/22*t*t + b; retuurn -c/2 * (-tt)*(t-22) - 1) + b; ; / TTo uuse it: $(#eleem).annimaate(wiidthh:2000,sllow,eeaseeInOOutQQuadd); 9. $.prroxyy()使用caallbbackk方法的的缺點(diǎn)之之一是當(dāng)當(dāng)執(zhí)行類類庫(kù)中的的方法后后,coonteext被被設(shè)置到到另外一一個(gè)元素素,例如如: Cllosee 執(zhí)行下面面代碼:$(#pannel).ffadeeIn(funnctiion() / thiis ppoinnts to
15、 #paanell $(#pannel butttonn).cliick(funnctiion() / thiis ppoinnts to thee buuttoon $(thhis).faadeOOut(); ); ); 你將遇到到問(wèn)題,bbuttton會(huì)會(huì)消失,不不是paanell。使用用$.pproxxy方法法,你可可以這樣樣書寫代代碼:$(#pannel).ffadeeIn(funnctiion() / UUsinng $.prroxyy too biind thiis: $(#pannel butttonn).cliick($.pproxxy(ffuncctioon() / tthi
16、ss poointts tto #pannel $(thhis).faadeOOut(); ,thhis); ); 這樣才正正確的執(zhí)執(zhí)行。$.prroxyy方法接接受兩個(gè)個(gè)參數(shù),你你最初的的方法,還還有coonteext。這里閱閱讀更多多$.pproxxy iin tthe doccs.。10. 判斷頁(yè)頁(yè)面是否否太過(guò)復(fù)復(fù)雜一個(gè)非常常簡(jiǎn)單的的道理,約約復(fù)雜的的頁(yè)面,加加載的速速度越慢慢。你可可以使用用下面代代碼檢查查一下你你的頁(yè)面面內(nèi)容:conssolee.loog( $(*).leengtth ); 以上代碼碼返回的的數(shù)值越越小,網(wǎng)網(wǎng)頁(yè)加載載速度越越快。你你可以考考慮通過(guò)過(guò)刪除無(wú)無(wú)用多余余的元
17、素素來(lái)優(yōu)化化你的代代碼11. 將你的的代碼轉(zhuǎn)轉(zhuǎn)化成jjQueery插插件如果你要要花一定定得時(shí)間間去開(kāi)發(fā)發(fā)一段jjQueery代代碼,那那么你可可以考慮慮將代碼碼變成插插件。這這將能夠夠幫助你你重用代代碼,并并且能夠夠有效的的幫助你你組織代代碼。創(chuàng)創(chuàng)建一個(gè)個(gè)插件代代碼如下下:(funnctiion($) $.fnn.yoourPPlugginNNamee = funnctiion() / YYourr coode goees hheree retuurn thiis; ; )(jjQueery); 你可以在在這里閱閱讀更多多開(kāi)發(fā)教教程。12. 設(shè)置全全局AJJAX為為缺省如果你開(kāi)開(kāi)發(fā)ajjax
18、程程序的話話,你肯肯定需要要有”加加載中“之之類的顯顯示告知知用戶,aajaxx正在進(jìn)進(jìn)行,我我們可以以使用如如下代碼碼統(tǒng)一管管理,如如下:/ aajaxxSettup is useefull foor ssetttingg geenerral deffaullts: $.ajjaxSSetuup( url : /ajjax/, dataaTyppe : jjsonn ); $.ajjaxSStarrt(ffuncctioon() showwInddicaatorr(); disaableeButttonns(); ); $.ajjaxCCompplette(ffuncctioon() hid
19、eeInddicaatorr(); enabbleBButttonss(); ); /* / AAddiitioonall meethoods youu caan uuse: $.ajjaxSStopp(); $.ajjaxEErroor(); $.ajjaxSSucccesss(); $.ajjaxSSendd(); */ 13. 在動(dòng)畫畫中使用用dellay()方法法鏈?zhǔn)降膭?dòng)動(dòng)畫效果果是jQQuerry的強(qiáng)強(qiáng)大之處處。但是是有一個(gè)個(gè)忽略了了的細(xì)節(jié)節(jié)就是你你可以在在動(dòng)畫之之間加上上dellayss,如下下:/ TThiss iss wrrongg: $(#eleem).annimaate(w
20、iidthh:2000,funnctiion() setTTimeeoutt(fuuncttionn() $(#eleem).annimaate(maargiinToop:1100); ,20000); ); / DDo iit llikee thhis: $(#eleem).annimaate(wiidthh:2000).deelayy(20000).annimaate(maargiinToop:1100); jQueery動(dòng)動(dòng)畫幫了了我們大大忙,否否則我們們得自己己處理一一堆的細(xì)細(xì)節(jié),設(shè)設(shè)置tiimtoout,處處理屬性性值,跟跟蹤動(dòng)畫畫變化等等等。大家可以以參考這這個(gè)文章章:jQQuerry aanimmatiionss14. 合理利利用HTTML55的Daata屬屬性HTMLL5的ddataa屬性可可以幫助助我們插插入數(shù)據(jù)據(jù)。特別別合適前前后端的的數(shù)據(jù)交交換。jjQueery近近來(lái)發(fā)布布的daata()方法法,可以以有效的的利用HHTMLL5的屬屬性,來(lái)來(lái)自動(dòng)得得到數(shù)據(jù)據(jù)。下面面是個(gè)例例子: 為了存取取數(shù)據(jù)你你需要調(diào)調(diào)用如下下代碼:$(#d1).ddataa(rrolee); / ppagee $(#d1).ddataa(llasttVallue); / 43 $(#d1).ddataa(hhidd
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 21922:2021/Amd 1:2024 EN Refrigerating systems and heat pumps - Valves - Requirements,testing and marking - Amendment 1
- 臨時(shí)保潔勞務(wù)協(xié)議
- 員工評(píng)語(yǔ)范文(15篇)
- 企業(yè)年安全生產(chǎn)工作總結(jié)
- 中考結(jié)束后家長(zhǎng)對(duì)老師的感言(9篇)
- 產(chǎn)科護(hù)士出科小結(jié)范文
- 中秋節(jié)晚會(huì)的活動(dòng)主持詞(7篇)
- 論語(yǔ)制作課件教學(xué)課件
- DB12∕T 902-2019 日光溫室和塑料大棚小氣候自動(dòng)觀測(cè)站選型與安裝技術(shù)要求
- 課件如何變現(xiàn)教學(xué)課件
- 初級(jí)會(huì)計(jì)實(shí)務(wù)題庫(kù)(613道)
- 初中七年級(jí)主題班會(huì):如何管理好自己的時(shí)間(課件)
- GB 5920-2024汽車和掛車光信號(hào)裝置及系統(tǒng)
- 高中地理人教版(2019)必修第一冊(cè) 全冊(cè)教案
- 萬(wàn)達(dá)入職性格在線測(cè)評(píng)題
- 2024新人教版語(yǔ)文二年級(jí)上冊(cè)《第五單元 課文》大單元整體教學(xué)設(shè)計(jì)
- 大型集團(tuán)公司信息安全整體規(guī)劃方案相關(guān)兩份資料
- 第五單元測(cè)試卷(單元測(cè)試)-2024-2025學(xué)年六年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版
- 打造低空應(yīng)急體系場(chǎng)景應(yīng)用實(shí)施方案
- 高校實(shí)驗(yàn)室安全通識(shí)課學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 中華人民共和國(guó)標(biāo)準(zhǔn)設(shè)計(jì)施工總承包招標(biāo)文件(2012年版)
評(píng)論
0/150
提交評(píng)論