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

首頁 > 編程 > JavaScript > 正文

編寫高效jQuery代碼的4個原則和5個技巧

2019-11-20 20:47:35
字體:
來源:轉載
供稿:網友

jQuery的編寫原則:

一、不要過度使用jQuery

1. jQuery速度再快,也無法與原生的javascript方法相比,而且建立的jQuery對象包含的信息量很龐大。所以有原生方法可以使用的場合,盡量避免使用jQuery。

復制代碼 代碼如下:

$("a").click(function(){
    alert($(this).attr("id"));
});
//改良后↓
$("a").click(function(){
    alert(this.id);
});


2. 許多jQuery方法都有兩個版本,一個是供jQuery對象使用的版本,另一個是供jQuery函數使用的版本。由于后者不通過jQuery對象操作,所以相對開銷較小,速度比較快。

復制代碼 代碼如下:

var $text = $("#text");
var $ts = $text.text();
//改良后↓
var $text = $("#text");
var $ts = $.text($text);

這里是用了“$.text()”的內置函數,其他類似的還有“$.data()”等。


二、緩存jQuery對象

查找DOM元素實際上有不小的內存開銷,使用選擇器的次數應該越少越好,并且盡可能緩存選中的結果,便于以后反復使用。記住,永遠不要讓相同的選擇器出現多次。

例如:

復制代碼 代碼如下:

$("#top").find("p.classA");
$("#top").find("p.classB");
改良后↓
var cached = $("#top");
cached.find("p.classA");
cached.find("p.classB");

三、少改動DOM結構

如果要多次改動DOM結構,就先把要改動的部分先取出來,改動完成后再放回去。這里的基本思想是在內存中建立你確實想要的東西,最后做一次最有效的更新DOM操作。

例如:

復制代碼 代碼如下:

var top_100_list = [...], // 這里是100個字符串的數組 
$mylist = $("#mylist");
for (var i=0, l=top_100_list.length; i<l; i++){
    $mylist.append("<li>" + top_100_list[i] + "</li>"); // 100次DOM操作
}
改良后↓
var top_100_list = [...],
$mylist = $("#mylist"),
top_100_li = ""; // 這個變量用來存儲變化的字符串
for (var i=0, l=top_100_list.length; i<l; i++){
    top_100_li += "<li>" + top_100_list[i] + "</li>";
}
$mylist.html(top_100_li);// DOM操作只有這么一次

四、命名規范

jQuery代碼中不免夾雜有JS代碼,如何讓jQuery代碼看起來嚴謹有序,規范自己的命名規則能更好的提高代碼的閱讀性。

1. 函數名:function getResultByUserId(){..},遵循駱駝命名法,首字母小寫,單詞首字母大寫,盡量短而且明確表達方法的用意。

還可以這樣定義:

復制代碼 代碼如下:

$.flushCartItemList = function() {
    isAjaxDate = true;
}

2. 參數名:function method(recordIdx, recordVal){..}, 同函數名,參數盡量用縮寫。
命名就是要有意義,一些屬性的縮寫也很有講究,例如:索引:idx;值:val;長度:len;名稱:nm;等...

3. 變量名:var user_id; var user_list_tab; var user_list_tr_1;,一般以下劃線為單詞分割,按照“命名_元素_索引”的規則。

jQuery對象的變量名要加上“$”的前綴以區分javascript對象。


jQuery編寫技巧:

一、選擇器擇優

選擇器是jQuery的基礎,如何選擇效率最高的選擇器,先要了解各種選擇器的性能差異。

①ID選擇器和標簽元素選擇器:$("#ID"); $("Tag");

jQuery內部會自動調用瀏覽器的原生方法(getElementById();,getElementByTagName();),所以執行速度快。

②類選擇器:$(".Class");

jQuery會遍歷所有DOM節點查找class=Class的DOM對象,所以執行速度較慢。

③偽類選擇器和屬性選擇器:$(":Type"); $("[Attribute='Value']");

因為瀏覽器沒有針對它們的原生方法,這兩種選擇器執行速度是最慢的。不過,不排除一些第三方瀏覽器增加了querySelector()和querySelectorAll()方法,因此會使這類選擇器的性能有大幅提高。

二、鏈式寫法

  

復制代碼 代碼如下:
$("div").find("h3").eq(2).html("Hello");

采用鏈式寫法時,jQuery會自動緩存每一步的結果,比非鏈式寫法(手動緩存)要快。


三、高效循環

  循環總是一種比較耗時的操作,javascript原生循環方法for和while,要比jQuery的“.each()”快。并且關于for循環,以下這種寫法效率最高。

復制代碼 代碼如下:

for (var i = 0, len = array.length; i < len; i++) {
  // alert(i);
}

先聲明變量,再進行循環操作,效率遠比遍歷數組“for (var i in arr)”高得多,也比循環取得數組長度“for (var i = 0; i < arr.length; i++)”的效率高!

四、字符串拼接

 字符串的拼接在開發中會經常遇到,用“+=”的方式來拼接字符串的效率非常的低,我們可以利用數組的“.join()”方法。

復制代碼 代碼如下:

var array = [];

for(var i = 0; i < 10000; i++){
    array[i] = "<input type='button' value='a'>";
}

document.getElementById("one").innerHTML = array.join("");

以前我很喜歡用數組的原生的方法“.push()”,其實直接用arr[i]或者arr[arr.length]的方式要快一點,但是差別不是很大。

五、頁面加載

 盡管$(function(){}); 確實很有用, 它是在所有DOM元素加載完成。如果你發現你的頁面一直是載入中的狀態,很有可能就是這個函數引起的。你可以通過將jQuery函數綁定到$(window).load 事件的方法來減少頁面載入時的cpu使用率。

復制代碼 代碼如下:

$(window).load(function(){
    // 頁面完全載入(包括所有的DOM元素和JS代碼)后才初始化的jQuery函數.
});

一些特效的功能,例如拖放,視覺特效和動畫,預載入隱藏圖像等等,都是適合這種技術的場合。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲三级 欧美三级| 亚洲国产精品国自产拍av秋霞| 久久综合久中文字幕青草| 日韩毛片在线观看| 亚洲国产欧美一区二区三区同亚洲| 亚洲欧美日韩中文视频| 欧美日韩午夜剧场| 国产精品美女呻吟| 欧美成人在线免费| 中文字幕欧美日韩精品| 懂色aⅴ精品一区二区三区蜜月| 国内精品久久久久| 国产精品久久久久久久久男| 久久人人爽人人爽人人片亚洲| 18一19gay欧美视频网站| 26uuu国产精品视频| 91国产在线精品| 日韩久久精品电影| 久久伊人免费视频| 国产精品999| 成人精品视频久久久久| 欧美激情一区二区三区久久久| 日韩精品丝袜在线| 日韩电影视频免费| 久久久亚洲欧洲日产国码aⅴ| 日韩免费在线免费观看| 亚洲精品久久久久| 亚洲人成网站在线播| 欧美激情久久久| 国产精品视频久久久久| 97成人精品视频在线观看| 欧美成人精品h版在线观看| 成人欧美一区二区三区黑人| 欧美做爰性生交视频| 国产91色在线| 精品亚洲一区二区| 精品视频偷偷看在线观看| 亚洲自拍偷拍色图| 国产精品中文久久久久久久| 日韩av免费在线观看| 久久全球大尺度高清视频| 性色av一区二区三区| 日韩在线观看成人| 日本视频久久久| 欧美午夜xxx| 精品日本美女福利在线观看| 精品无码久久久久久国产| 欧美高清在线视频观看不卡| 国产欧美一区二区三区久久| 国产精品视频地址| 国产精品久久色| 欧美电影免费观看高清完整| 久久久在线观看| 日韩精品在线观看一区| 日本精品性网站在线观看| 国产精品成人观看视频国产奇米| 国外成人免费在线播放| 久热99视频在线观看| 日韩美女写真福利在线观看| 中文字幕无线精品亚洲乱码一区| 久久夜色精品国产亚洲aⅴ| 久久夜色撩人精品| 久久精品国产91精品亚洲| 精品国产自在精品国产浪潮| 国产成人精品一区二区三区| 国产精品美女久久久久久免费| 欧美电影在线播放| 国产精品专区一| 成人乱色短篇合集| 高清欧美一区二区三区| 国产一区二区三区视频在线观看| 亚洲福利在线看| 欧美精品一区二区免费| 欧美电影免费在线观看| 国产网站欧美日韩免费精品在线观看| 久久精品免费播放| 国产精品久久色| 国产精品美女www爽爽爽视频| 97国产精品人人爽人人做| 久久精品久久久久久国产 免费| 黄色成人在线播放| 日韩高清欧美高清| 一个人看的www久久| 日韩男女性生活视频| 91精品国产高清久久久久久| 国产精品福利在线观看网址| 成人写真视频福利网| 欧美在线视频一区二区| 成人在线激情视频| 在线观看国产成人av片| 亚洲精品国产欧美| 国产精品久久久久久久久久久新郎| 精品无人区太爽高潮在线播放| 日韩精品高清视频| 97碰碰碰免费色视频| 亚洲精品国产拍免费91在线| 亚洲美女精品久久| 精品视频—区二区三区免费| 色青青草原桃花久久综合| 91欧美日韩一区| 色久欧美在线视频观看| 亚洲精品v欧美精品v日韩精品| 亚洲人成网站999久久久综合| 国产精品视频久久久| 欧美国产日韩一区二区在线观看| 日本精品va在线观看| 福利二区91精品bt7086| 91精品中文在线| 精品视频中文字幕| 日韩免费观看视频| 日韩精品在线免费观看视频| 亚洲第一区中文字幕| 久久福利视频网| 成人激情视频网| 欧美日韩国产丝袜美女| 在线观看国产精品91| 日韩av电影手机在线| 亚洲成人aaa| 国产日本欧美一区二区三区在线| 亚洲色图25p| 久久精品成人欧美大片古装| 亚洲精品国产欧美| 亚洲第一页中文字幕| 亚洲第一福利网| 亚洲激情 国产| 亚洲影院色无极综合| 亚洲视频在线观看视频| 欧美精品一本久久男人的天堂| 91综合免费在线| 国产精品无av码在线观看| 97在线视频一区| 欧美插天视频在线播放| 在线观看欧美日韩| 欧美在线免费观看| 亚洲欧美国产精品久久久久久久| 国产一区深夜福利| 欧美电影免费播放| 欧美日韩一二三四五区| 91亚洲va在线va天堂va国| 国产精品久久久久久婷婷天堂| 精品久久中文字幕| 亚洲免费电影一区| 97视频网站入口| 亚洲天堂2020| 国产精品爱啪在线线免费观看| 亚洲japanese制服美女| 欧美另类极品videosbestfree| 欧美一区第一页| 亚洲视频在线观看| 日韩乱码在线视频| 亚洲一区二区三| 一区二区中文字幕| 国产成人福利视频| 久久久精品久久久| 68精品国产免费久久久久久婷婷| 黄网动漫久久久| 久久久精品一区二区三区| 最近2019年日本中文免费字幕| 精品一区二区三区四区| 91麻豆国产语对白在线观看| 国产精品日韩欧美| 亚洲免费电影一区| 尤物yw午夜国产精品视频明星| 亚洲福利小视频|