亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery性能優化技巧分析

2019-11-20 13:08:06
字體:
來源:轉載
供稿:網友

本文較為詳細分析了jQuery性能優化技巧。分享給大家供大家參考。具體分析如下:

一、使用最新版本的jQuery類庫

jQuery新版本會較上個版本進行Bug修復和一些優化,不過需要注意的是,在更換版本之后,不要忘記測試你的代碼,畢竟有時候不是完全向后兼容的。

二、使用合適的選擇器

jQuery選擇器性能最佳到最差方式如下:

id選擇器,如$('#id', context)
標簽選擇器,如$('p', context)
class選擇器,如$('.class', context)
屬性選擇器,如$('[attribute=value]', context)
偽類選擇器,如$(':hidden', context)

補充及注意事項:

盡量給選擇器指定上下文context,可以縮小定位元素的范圍
避免id重復修飾id,錯誤代碼:var $el = $('#list #item1')
避免標簽或class修飾id,錯誤代碼: var $el = $('ul #item1')
如果使用屬性選擇器,盡量指定所屬的標簽選擇器,這樣可以加快訪問速度,正確代碼:var $el = $('a[title="link"]')

三、緩存對象

下面是性能不好的方式:

$('#home').css(...);$('#home').bind('click', function() {});$('#home').addClass(...);

說明:jQuery會在創建每個選擇器的過程中,查找DOM,消耗時間與性能。

比較好的方式:

var $homeLink = $('#home', context);$homeLink.css(...);$homeLink.bind('click', function() {});$homelink.addClass(...);

說明:永遠不要讓相同的選擇器在你的代碼里出現多次。

四、循環時的DOM操作

使用jQuery可以很方便的添加,刪除或者修改DOM節點,但是在一些循環中,例如for(),while()或者$.each()中處理節點時,下面有個實例值得大家注意:

var $list = $('#list');for(var i = 0; i < 100; i++) {  $list.append('<li>' + i + '</li>');}

說明:循環添加li節點100次,這種操作消耗的性能不低,所以更好的方式是將要添加的節點在插入DOM樹之前全部創建好,再一次性添加到DOM樹中。更好的方式:

var $list = $('#list'),  fragment = '';for(var i = 0; i < 100; i++) {  fragment += '<li>' + i + '</li>';}$list.append(fragment);

五、數組方式使用jQuery對象

使用jQuery選擇器獲取結果是一個jQuery對象。在性能方面,建議使用簡單for或者while循環來處理,而不是$.each(),這樣能使你的代碼更快。

另外注意:檢查長度是一個檢查jQuery對象是否存在的方式。

var $list = $('#list');if($list) {  //總是true  //do something}if($list.length) { //擁有元素才返回true  //do something}

六、事件代理

每一個JavaScript事件(如click,mouseover)都會冒泡到父級節點。當我們需要給多個元素調用同一個函數時,這點會很有用。

...<ul id="list">  <li id="item1"></li>  <li id="item2"></li>  <li id="item3"></li>  ...</ul>...var $item1 = $('#item1'),  $item2 = $('#item2'),  $item3 = $('#item3');  ...$item1.click(function() {...});$item2.click(function() {...});$item3.click(function() {...});...

說明:這種方式,如果有100個li,要綁定100個事件。顯然,不科學,性能損耗很多。

更好的方式是:只需向li的父節點ul綁定一次事件,然后通過event.target獲取到點擊的當前元素。

var $list = $('#list');$list.click(function(e) {  var $currentItem = $(e.target);  //e.target捕捉到當前觸發事件的目標元素  ...});

七、將你的代碼轉化成jQuery插件

如果每次都花時間去寫類似的jQuery代碼,那么可以考慮將這部分類似的代碼變成插件,它能夠使你的代碼有更好的重用性,并且能夠有效的幫助你組織代碼。

八、使用Javascript數組join()來拼接字符串

處理長字符串的時候,使用join()方法有助于優化性能。

var arr = [];for(var i = 0; i < 100; i++){  arr[i] = '<li>' + i + '</li>';}$list.html(arr.join(''));

九、合理利用HTML5的data屬性

HTML5的data屬性可以幫助我們插入數據,特別是前后端的數據交換。jQuery的data()方法,有效的利用HTML5的屬性,來自動得到數據。

...<a id="info" data-info-index="23" data-role="linkInfo"></a>...var $infoLink = $('#info');var infoIndex = $infoLink.data('info-index');var type = $infoLink.data('linkInfo');

十、盡量使用原生的JavaScript方法

如:

$(this).css('color': 'blue');

優化成:

this.style.color = 'blue';

如:

$('<p></p>');

優化成:

$(document.createElement('p'));

十一、壓縮JavaScript

使用壓縮工具壓縮JavaScript文件。
發布項目時,應使用“壓縮版”JavaScript文件。

希望本文所述對大家的jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人av在线网址| 韩国美女主播一区| 久久久久久伊人| 久久久国产一区| 欧美综合激情网| 国产精品99一区| 成人精品一区二区三区电影黑人| 亚洲国产精彩中文乱码av| 成人久久久久久久| 色妞色视频一区二区三区四区| 亚洲人成亚洲人成在线观看| 亚洲自拍偷拍在线| 在线日韩日本国产亚洲| 欧洲日韩成人av| 成人久久久久久久| 日韩大胆人体377p| 一区二区福利视频| 国产成人在线亚洲欧美| 国产有码在线一区二区视频| 最近中文字幕mv在线一区二区三区四区| 91九色精品视频| 亚洲成人黄色网址| 51精品国产黑色丝袜高跟鞋| 国产盗摄xxxx视频xxx69| 亚洲福利在线播放| 97精品一区二区视频在线观看| 国产成人自拍视频在线观看| 日韩精品视频在线免费观看| 91亚洲永久免费精品| 日韩中文在线中文网三级| 国产亚洲精品一区二区| 清纯唯美亚洲综合| 国产欧美日韩免费| 在线观看日韩专区| 亚洲精品久久在线| 亚洲综合中文字幕在线观看| 国产91精品视频在线观看| 清纯唯美亚洲综合| 久久久中文字幕| 欧美精品一区二区免费| 久久视频在线视频| 欧美第一黄色网| 精品国产1区2区| 久久免费视频在线观看| 久色乳综合思思在线视频| 亚洲精品久久久久中文字幕欢迎你| 亚洲精品日韩激情在线电影| 亚洲精选在线观看| 日韩专区中文字幕| 欧美精品xxx| 日韩一级裸体免费视频| 正在播放亚洲1区| 日本19禁啪啪免费观看www| 欧美激情一区二区三区高清视频| 亚洲成人激情图| 午夜欧美不卡精品aaaaa| 亚洲a区在线视频| 久久久999国产精品| 欧美精品一区在线播放| 国产精品福利片| 亚洲人成欧美中文字幕| 欧美电影免费播放| 亚洲国产精品成人va在线观看| 亚洲国产三级网| 欧美一区二区视频97| 成人在线视频福利| 日韩黄色在线免费观看| 国产精品18久久久久久麻辣| 91成人性视频| 一本大道亚洲视频| 欧美精品videos| 国产精品69av| 亚洲精品视频网上网址在线观看| 欧美日韩性视频在线| 亚洲白虎美女被爆操| 久久久久久这里只有精品| 欧美视频在线免费| 综合久久五月天| 一本色道久久88亚洲综合88| 日韩免费观看视频| 国产精品成人一区二区| 亚洲成人网在线观看| 日韩av高清不卡| 国产成人高潮免费观看精品| 国产亚洲一区二区精品| 亚洲xxxxx| 亚洲a区在线视频| 欧美重口另类videos人妖| 欧美性xxxx极品hd满灌| 亚洲天堂av在线播放| 伊人久久久久久久久久久久久| 国内精久久久久久久久久人| 中文字幕日韩精品在线观看| 亚洲精品v天堂中文字幕| 日韩av在线免费看| 久久精品国产亚洲一区二区| 精品亚洲精品福利线在观看| 在线观看日韩视频| 在线看日韩av| 久99九色视频在线观看| 精品国产一区二区三区四区在线观看| 欧美区在线播放| 亚洲视频欧洲视频| 日韩激情第一页| 亚洲美女久久久| 欧美视频中文字幕在线| 国产www精品| 日韩欧美精品网址| 日本三级久久久| 国产欧美va欧美va香蕉在| 51久久精品夜色国产麻豆| 久久精品99久久香蕉国产色戒| 日日噜噜噜夜夜爽亚洲精品| 欧美日韩国产精品专区| 欧美午夜精品久久久久久浪潮| 精品一区精品二区| 91色视频在线导航| 国产日产久久高清欧美一区| 欧美亚洲日本网站| 欧美视频免费在线观看| 欧美专区在线视频| 18性欧美xxxⅹ性满足| 欧美日韩在线第一页| 欧美性xxxx18| 国产精品美女主播在线观看纯欲| 一区二区三区 在线观看视| 国外成人在线直播| 这里只有精品在线播放| 欧美一级片在线播放| 亚洲女人天堂成人av在线| 国产一区二区美女视频| 欧美老女人www| 成人在线小视频| 久久久精品久久久久| 中文字幕日韩av综合精品| 91中文字幕在线| 国产裸体写真av一区二区| 亚州欧美日韩中文视频| 欧美午夜电影在线| 日韩欧美福利视频| 九九热99久久久国产盗摄| 日韩欧美国产网站| 久久久久国产精品www| 亚洲激情国产精品| 欧美日韩一区二区在线播放| 97精品久久久中文字幕免费| 亚洲在线免费观看| 国产91色在线|免| 亚洲欧美另类自拍| 91影视免费在线观看| 亚洲自拍欧美另类| 国产视频欧美视频| 欧美丰满片xxx777| 久久人人爽人人爽人人片av高请| 97精品视频在线播放| 亚洲免费视频在线观看| 国产网站欧美日韩免费精品在线观看| 欧美成人免费va影院高清| yellow中文字幕久久| 日韩网站免费观看| 国产成人精品久久久| 欧美大片在线看免费观看| 北条麻妃久久精品| 久久97精品久久久久久久不卡|