成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

jQuery不同選擇器性能比較

開發(fā) 前端
有大量的日志文章論述了jQuery選擇器及它們的性能影響,文章通過(guò)實(shí)例,詳細(xì)的分析在jQuery中不同選擇器性能比較,僅供參考,希望對(duì)您有所幫助。

有大量的日志文章論述了jQuery選擇器及它們的性能影響。正如你所知,可以通過(guò)ID, TagName或ClassName選擇元素。依賴于不同的選擇器,jQuery會(huì)使用瀏覽器本地方法,如通過(guò)ID或標(biāo)簽來(lái)選擇元素,或者在使用類名選擇時(shí)須手工從DOM中遍歷獲得元素(因?yàn)樵贗E中不存在相應(yīng)的 getElementsByClssName)。

分析我的頁(yè)面時(shí)間中這2秒

在onLoad處理器中對(duì)頁(yè)面中某些特定的元素使用jQuery設(shè)置為隱藏,顯示或改變樣式表。這里是一個(gè)代碼片斷:

onLoad中的jQuery腳本樣例 
onLoad中的jQuery腳本樣例

onLoad中的jQuery腳本樣例

在onLoad事件處理器中充滿著這樣的調(diào)用。通過(guò)使用免費(fèi)的dynaTrace AJAX Edition, 你會(huì)看到被解析為選擇器的$調(diào)用,并跟隨著那些方法調(diào)用,選擇器至少都能獲取到一個(gè)對(duì)象。下面通過(guò)PurePath對(duì)onLoad事件處理器的觀察,不僅給我們展示了每次選擇器調(diào)用所耗費(fèi)的時(shí)間,還包括在不只一個(gè)對(duì)象時(shí)實(shí)際找到的對(duì)象數(shù)(下面還沒(méi)有哪個(gè)方法調(diào)用是連一個(gè)對(duì)象都找不到的)。

非必要的jQuery選擇器調(diào)用導(dǎo)致無(wú)謂的開銷 
非必要的jQuery選擇器調(diào)用導(dǎo)致無(wú)謂的開銷

所有紅色標(biāo)記的調(diào)用都未返回一個(gè)元素,因?yàn)椴淮嬖谥苯踊诓樵儣l件的DOM元素。JavaScript列顯示了每一次單獨(dú)方法調(diào)用的執(zhí)行時(shí)間–范圍在 1ms 到大于 100 ms。Size列告訴了我們每次單獨(dú)的調(diào)用產(chǎn)生了多少次的JavaScript/DOM的方法調(diào)用(譯者注:指瀏覽器本地的調(diào)用)。這里我們也能明白,為什么某些 $ 調(diào)用花費(fèi)了那么長(zhǎng)時(shí)間,是因?yàn)樗鼈儗?shí)際進(jìn)行了許多的調(diào)用來(lái)完成請(qǐng)求。Invocation 列告訴了我們?cè)摲椒ū凰母讣?jí)所調(diào)用的頻度。這里我們可看出一些對(duì)象實(shí)際被解析了多次,比如: “.pop-cart”。***的做法應(yīng)該是只解析一次得到對(duì)象并緩存起來(lái)。

這里我們學(xué)到的***課是上面多數(shù)調(diào)用是非必要的,只會(huì)產(chǎn)生過(guò)量的消耗。如果你明確知道你需要解析出哪些頁(yè)面元素,那就不要試圖去解析其他的對(duì)象。我知道,用全局的腳本文件來(lái)處理不同頁(yè)面中的不同內(nèi)容會(huì)導(dǎo)致出現(xiàn)這樣的情況–但是–你是否真愿意在這種無(wú)謂的開銷中生活呢?

分析jQuery選擇器的差異

在分析頁(yè)面上的***個(gè)問(wèn)題是致使了太多的非必要$調(diào)用。繼而帶來(lái)的另一個(gè)疑問(wèn)就是為何某些$方法響應(yīng)很快(幾微秒),而有些卻用了相當(dāng)長(zhǎng)的時(shí)間(超過(guò)100ms)。回到我的頁(yè)面中來(lái),它向我提示了如下的結(jié)論:

ID選擇器,也就是使用了getElementById,是最快的

下圖展示了一個(gè)使用ID的選擇器。它使用了getElementById,因此很快就返回了。

jQuery ID選擇器 
jQuery ID選擇器

TagName選擇器使用的是getElementsByTagName

下面的例子是通過(guò)TagName搭配ClassName 來(lái)選擇元素。jQuery首先使用本地實(shí)現(xiàn)getElementsByTagName來(lái)獲得所有指定標(biāo)簽的元素。接著遍歷它們針對(duì)ClssName進(jìn)行過(guò)濾。

jQuery的Tag和ClassName選擇器

ClassName選擇器需要遍歷所有的DOM元素

如果你只用ClassName選擇器 - jQuery需要遍歷DOM中的每一個(gè)元素,因?yàn)樵贗nternet Explorer(對(duì)于FireFox是另一番情景)中沒(méi)有對(duì)應(yīng)于 getElementsByClassName的本地實(shí)現(xiàn)。下圖顯示了在一直有著3460個(gè)DOM元素的頁(yè)面中選擇器使用開銷的情況。

jQuery ClassName選擇器 
jQuery ClassName選擇器

小結(jié)

依賴于你的Web站點(diǎn)的大小(指DOM元素的數(shù)量), 你需要考慮每個(gè)單獨(dú)的選擇器方法的開銷。相比于通過(guò)ClassName來(lái)選擇,你應(yīng)該優(yōu)先考慮用TagName 搭配ClassName來(lái)選擇,或是在你的頁(yè)面只有少量對(duì)象時(shí)用唯一性的ID來(lái)選擇。而且- 確保緩存了已解析獲得的對(duì)象,以避免再次解析調(diào)用時(shí)的開始。還有 – ***也是應(yīng)該予以重視的一點(diǎn) – 避免不必要的調(diào)用。如前面頁(yè)面我所分析的 – 2 秒中有超過(guò)1.5秒是可以規(guī)避那些調(diào)用來(lái)省去的。

譯文鏈接:http://www.blogjava.net/Unmi/archive/2009/11/24/303477.html

原文鏈接:http://blog.dynatrace.com/2009/11/09/101-on-jquery-selector-performance/

【編輯推薦】

  1. jQuery數(shù)組處理完全詳解(實(shí)例演示)
  2. 大師之間的論戰(zhàn) jQuery之父談YUI3差在哪
  3. jQuery的運(yùn)行機(jī)制和設(shè)計(jì)理念 

 

責(zé)任編輯:王曉東 來(lái)源: 博客
相關(guān)推薦

2009-11-26 09:52:05

jQuery選擇器

2024-12-02 08:00:00

2011-04-15 10:26:38

JavaMVC

2009-05-25 08:39:08

iPhone蘋果移動(dòng)OS

2023-01-30 08:42:33

CSS選擇器性能

2010-07-20 10:11:32

jQuery選擇器Sizzle

2011-05-18 14:52:04

XML

2013-12-02 14:22:14

jQuery選擇器

2013-12-16 10:20:48

MySQL數(shù)據(jù)庫(kù)

2023-11-20 10:34:09

語(yǔ)言

2012-06-12 09:43:11

jQuery

2012-12-03 10:26:51

Scala

2009-12-04 19:28:25

FreeBSD 8.0Ubuntu 9.10性能比較

2023-11-19 21:17:58

GoRust

2009-07-01 18:12:18

JSP的優(yōu)勢(shì)性能比較

2017-12-14 10:16:01

CaddySSLDockerNginx

2011-07-06 14:18:40

Percona SerMySQL

2013-04-03 10:04:36

MySQL 5.6

2015-02-05 09:25:51

HTTPSSPDYHTTP2

2020-07-27 08:24:42

編程語(yǔ)言C語(yǔ)言Java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲一区二区 | 欧美一区二区在线免费观看 | av网址在线 | 欧美精品一二三区 | 99国产精品99久久久久久 | 在线欧美| 国产精品一区二区久久 | 在线观看视频亚洲 | 中文成人在线 | 最新国产视频 | 午夜影视大全 | 99免费在线观看视频 | 亚洲午夜视频在线观看 | 国产精品免费一区二区三区四区 | 亚洲成人av在线 | 麻豆视频国产在线观看 | www.日韩免费 | 99久久精品国产一区二区三区 | 久久久久亚洲视频 | 色婷婷久久久久swag精品 | 成人一区二 | 先锋影音资源网站 | 亚洲国产精品91 | 亚洲日本一区二区三区四区 | 精品欧美一区二区三区久久久小说 | 日韩国产在线观看 | 欧美成人一区二免费视频软件 | 超碰男人天堂 | 国产三区精品 | 春色av| 日本黄色片免费在线观看 | 日韩美香港a一级毛片免费 国产综合av | 国产美女视频 | 精品在线观看一区 | av网站免费观看 | 欧美大片在线观看 | 午夜影院在线免费观看视频 | 国产精品揄拍一区二区久久国内亚洲精 | 国产精品96久久久久久 | 国产免费一区二区 | 黄色片av|