中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

jQuery的Each比JS原生for循環性能慢很多的原因
來源:易賢網 閱讀:1056 次 日期:2016-07-26 14:34:13
溫馨提示:易賢網小編為您整理了“jQuery的Each比JS原生for循環性能慢很多的原因”,方便廣大網友查閱!

這篇文章主要介紹了jQuery的Each比JS原生for循環性能慢很多的原因的相關資料,需要的朋友可以參考下

其實查看jQuery的源代碼,發現each的代碼很簡單,但為什么性能和原生的for循環相差幾十倍呢?

jQuery的each的核心代碼

for (; i < length; i++) {

value = callback.call(obj[i], i, obj[i]);

if (value === false) {

break;

}

}

看著很簡單,但為什么會慢很多呢?

編寫測試代碼如下:

var length=300000;

function GetArr() {

var t = [];

for (var i = 0; i < length; i++) {

t[i] = i;

}

return t;

}

function each1(obj, callback) {

var i = 0;

var length = obj.length

for (; i < length; i++) {

value = callback(i, obj[i]);

/* if ( value === false ) {去掉了判斷

break;

}*/

}

}

function each2(obj, callback) {

var i = 0;

var length = obj.length

for (; i < length; i++) {

value = callback(i, obj[i]);/*去掉了call*/

if (value === false) {

break;

}

}

}

function each3(obj, callback) {

var i = 0;

var length = obj.length

for (; i < length; i++) {

value = callback.call(obj[i], i, obj[i]);/*自己寫的call*/

if (value === false) {

break;

}

}

}

function Test1() {

var t = GetArr();

var date1 = new Date().getTime();

var lengtharr = t.length;

var total = 0;

each1(t, function (i, n) {

total += n;

});

var date12 = new Date().getTime();

console.log("1Test" + ((date12 - date1)));

}

function Test2() {

var t = GetArr();

var date1 = new Date().getTime();

var total = 0;

each2(t, function (i, n) {

total += n;

});

var date12 = new Date().getTime();

console.log("2Test" + ((date12 - date1)));

}

function Test3() {

var t = GetArr();

var date1 = new Date().getTime();

var total = 0;

each3(t, function (i, n) {

total += n;

});

var date12 = new Date().getTime();

console.log("3Test" + ((date12 - date1)));

}

function Test4() {

var t = GetArr();

var date1 = new Date().getTime();

var total = 0;

$.each(t, function (i, n) {

total += n;

});

var date12 = new Date().getTime();

console.log("4Test" + ((date12 - date1)));

}

運行測試,發現,第一個和第二個相差不是很大,這說明由于break這個判斷導致的性能差異很少,但第二個和第三個,第四個偏差就就不止一倍了,而第二個和第三個唯一的區別就是調用了call,看來call會導致性能損失,因為call會切換上下文,當然jQuery的each慢還有其他原因,它還在循環中調用了其他的方法,call只是一個原因罷了。

因此可以說call,和apply都是js中比較消耗性能的方法,在性能要求嚴格時,建議少用。

下面在通過一段代碼看下jquery的each和js原生for循環性能對比

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title>for與each性能比較</title>

<script src="../Cks/jquery-1.7.1.min.js" type="text/javascript"></script>

<script type="text/javascript" language="javascript">

function getSelectLength() {

var time1 = new Date().getTime();

var len = $("#select_test").find("option").length;

var selectObj = $("#select_test");

for (var i = 0; i < len; i++) {

if (selectObj.get(0).options[i].text == "111111") {

selectObj.get(0).options[i].selected = true;

break;

}

}

var time2 = new Date().getTime();

alert("for循環執行時間:" + (time2 - time1));

time1 = new Date().getTime();

$("#select_test").find("option").each(function () {

if ($(this).text() == "111111") {

$(this)[0].selected = true;

}

});

time2 = new Date().getTime();

alert("each循環執行時間:" + (time2 - time1));

}

</script>

</head>

<body>

<form id="form1" runat="server">

<div><select id="select_test">

<option value='1'>111111</option>

<option value='2'>222222</option>

<option value='3'>333333</option>

<option value='4'>444444</option>

<option value='5'>5</option>

<option value='6'>6</option>

<option value='7'>7</option>

<option value='8'>8</option>

<option value='9'>9</option>

<option value='10'>10</option>

<option value='11'>11</option>

<option value='12'>12</option>

<option value='13'>13</option>

<option value='14'>14</option>

<option value='15'>15</option>

<option value='16'>16</option>

<option value='17'>17</option>

<option value='18'>18</option>

<option value='19'>19</option>

<option value='20'>20</option>

</select><input type="button" value="開始比較" onclick="getSelectLength();" /></div>

<div>

</form>

</body>

</html>

輸入出入:

for循環執行時間:1

each循環執行時間:3

兩次結果直接說明了問題。

以上所述是小編給大家介紹的jQuery的Each比JS原生for循環性能慢很多的原因,希望對大家有所幫助

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美韩日视频| 欧美aⅴ一区二区三区视频| 国产欧美日韩视频一区二区三区| 欧美第一黄网免费网站| 国产精品青草久久| 一区二区三区产品免费精品久久75 | 亚洲午夜久久久久久尤物| 国产精品一区二区三区成人| 影音先锋亚洲视频| 久久综合九色综合欧美狠狠| 国产精品尤物福利片在线观看| 亚洲精品欧美一区二区三区| 免费在线成人av| 亚洲精品免费在线播放| 有码中文亚洲精品| 亚洲黄色免费网站| 国产精品女主播在线观看| 毛片精品免费在线观看| 亚洲资源av| 日韩午夜在线观看视频| 国产精品一区毛片| 国产精品久久久久77777| 麻豆av一区二区三区| 欧美亚洲网站| 羞羞视频在线观看欧美| 亚洲乱码国产乱码精品精天堂| 国产一区二区三区的电影| 欧美日本一区二区三区| 国产精品乱码一区二区三区| 亚洲精品国产欧美| 久久亚裔精品欧美| 欧美日韩一区综合| 伊人激情综合| 欧美母乳在线| 亚洲精选一区| 欧美少妇一区| 夜夜嗨av一区二区三区免费区| 久久精品一区二区三区中文字幕 | 国产精品乱码妇女bbbb| 一本色道久久综合亚洲精品不 | 欧美剧在线观看| 久久久精品五月天| 午夜精品福利在线| 欧美综合第一页| 美女精品一区| 欧美日韩国产精品专区| 国产精品美女久久| 亚洲国产成人在线视频| 99精品国产在热久久下载| 校园激情久久| 欧美夜福利tv在线| 日韩亚洲精品视频| 亚洲第一级黄色片| 亚洲人成网站777色婷婷| 韩国女主播一区| 国产一区二区三区高清在线观看| 欧美日韩综合久久| 国产精品理论片在线观看| 国产一区高清视频| 亚洲在线1234| 久久男人资源视频| 欧美激情久久久久| 狼人社综合社区| 欧美四级伦理在线| 亚洲高清视频中文字幕| 在线视频你懂得一区| 欧美不卡在线视频| 激情久久久久| 久久在线免费| 黄页网站一区| 久久国产精品久久国产精品| 国际精品欧美精品| 精品91久久久久| 亚洲精选视频免费看| 亚洲一级黄色片| 欧美国产一区在线| 亚洲高清电影| 久久av一区二区三区| 国产精品一区二区欧美| 一区二区精品国产| 欧美精品色一区二区三区| 亚洲欧洲另类国产综合| 欧美视频网站| 欧美一级网站| 亚洲国产高潮在线观看| 欧美日韩视频一区二区| 亚洲一区综合| 国产午夜亚洲精品理论片色戒| 亚洲性感激情| 国产一区二区三区直播精品电影| 午夜性色一区二区三区免费视频| 欧美日韩在线一二三| 亚洲欧美资源在线| 在线看国产一区| 国产精品一区视频| 欧美xxx在线观看| 午夜亚洲伦理| 雨宫琴音一区二区在线| 国产精品网站视频| 欧美黑人国产人伦爽爽爽| 亚洲欧美日韩国产一区| 狠狠爱www人成狠狠爱综合网| 欧美高清在线视频| 亚洲欧美影音先锋| 国产亚洲精品一区二区| 欧美一区二区在线播放| 欧美日韩综合在线免费观看| 久久尤物视频| 久久精品99久久香蕉国产色戒 | 亚洲国产婷婷| 国产亚洲二区| 国产精品腿扒开做爽爽爽挤奶网站| 免费在线成人av| 久久精品视频在线看| 亚洲图片在线| 午夜在线一区| 久久综合给合久久狠狠色| 久久riav二区三区| 久久久五月天| 久久午夜激情| 久久欧美中文字幕| 欧美在线不卡视频| 午夜一级久久| 欧美中文字幕精品| 亚洲男人影院| 亚洲国产精品第一区二区| 国产午夜精品全部视频播放| 欧美日韩亚洲高清一区二区| 久久精品免视看| 久久精品综合| 欧美理论在线| 亚洲国产日韩欧美| 亚洲第一区在线观看| 国产精品日韩专区| 国产精品日韩在线观看| 在线成人免费观看| 亚洲欧美另类在线观看| 美日韩精品视频免费看| 国产精品乱子乱xxxx| 亚洲国产日本| 久久精品国产亚洲精品| 欧美成人激情在线| 欧美日韩高清在线播放| 国产精品日日做人人爱| 亚洲激情欧美激情| 美国十次成人| 99riav久久精品riav| 欧美成va人片在线观看| 亚洲欧洲精品一区二区| 久久精品夜色噜噜亚洲a∨| 欧美日韩综合在线| 91久久国产综合久久| 久久都是精品| 国产精品免费区二区三区观看| 亚洲美女在线国产| 欧美日韩在线播放一区二区| 一区二区三区四区五区精品视频| 国产精品爽黄69| 亚洲夜间福利| 国产精品国产三级国产aⅴ9色| 日韩亚洲欧美高清| 欧美日韩免费看| 在线视频日本亚洲性| 国产精品视频yy9099| 欧美在线视频一区二区三区| 国产婷婷色一区二区三区| 亚洲久久在线| 欧美日韩免费在线观看| 欧美一区二区三区在线看 | 久久国产一区| 一区二区三区不卡视频在线观看 | 老司机一区二区三区| 国模精品娜娜一二三区| 久久久久久久一区| 在线观看视频一区二区| 欧美黄色aaaa| 亚洲欧美国产另类| 亚洲日产国产精品| 在线观看日韩精品| 国产欧美一区二区视频| 欧美日韩一二区| 久久久综合视频| 欧美一区二区网站| 亚洲免费精品| 日韩视频免费在线观看| 国产精品久久久一区麻豆最新章节| 久久久久久久激情视频| 亚洲香蕉在线观看| 99视频一区| 激情综合中文娱乐网| 国产精品久久久久久影视| 欧美精品在线极品| 老司机精品视频一区二区三区| 亚洲欧美日本国产有色| 亚洲一区二区三区在线播放| 亚洲日本久久| 在线日韩欧美| 国内精品久久久久久久影视麻豆| 国产麻豆91精品| 狠狠干综合网|