|
您的位置: 首頁(yè) > 網(wǎng)站資訊 > 行使事件委托來(lái)增強(qiáng)事件批量綁定的效率 |
行使事件委托來(lái)增強(qiáng)事件批量綁定的效率發(fā)布日期:2017/6/12
百度權(quán)重查詢 站長(zhǎng)交易 友情鏈接交換 網(wǎng)站監(jiān)控 服務(wù)器監(jiān)控 seo監(jiān)控 先說(shuō)說(shuō)為什么要討論這個(gè)話題,工作閱歷多一點(diǎn)的WEB前端工程師都知道,我們經(jīng)常需要對(duì)頁(yè)面上大量具有某種共性的節(jié)點(diǎn)綁定同樣的一個(gè)事件處理器,傳統(tǒng)的體例是將這些節(jié)點(diǎn)獲取為一個(gè)對(duì)象薈萃,然后對(duì)每個(gè)薈萃綁定一次事件,很顯然,當(dāng)薈萃只有兩三個(gè)元素的時(shí)候,我們這樣做無(wú)所謂。但當(dāng)數(shù)量達(dá)到幾十甚至幾百個(gè)的時(shí)候怎么辦呢?使用這種遍歷對(duì)象集依次進(jìn)行綁定的體例勢(shì)必會(huì)造成很蛋疼的性能問(wèn)題。特殊是在那些低端瀏覽器上。他們擁有著性能特別很是可悲的javascript詮釋引擎,這給我們那些要求頁(yè)面體驗(yàn)和流暢度的工程師們帶來(lái)的無(wú)疑是很沉重的襲擊。 今天就給大家介紹一個(gè)名詞“事件委托”,高手就不要在這里嘲笑我了,我這都是寫(xiě)給新手看看的。所謂“事件委托”,如同名字一樣,是我們將這個(gè)薈萃中每個(gè)元素的事件,委托給某一個(gè)元素來(lái)處理,這樣我們只需要綁定一個(gè)元素的某個(gè)事件,就可以達(dá)到我們所需要的效果。為了大家能夠清楚的了解其中的原理,我在這里不進(jìn)行事件綁定的相關(guān)講解,綁定的時(shí)候只使用DOM0級(jí)方法,兼容所有瀏覽器即可。 不廢話,且看代碼,原理在代碼的注釋中寫(xiě)得很具體 你也可以直接查看文章后面的無(wú)注釋代碼
看完上面的代碼,難免大家有點(diǎn)迷糊,其實(shí)這里面有兩個(gè)要點(diǎn),我來(lái)總結(jié)一下,大家便曉暢了 、通過(guò)給obj容器綁定事件,然后通過(guò)target來(lái)得到觸發(fā)這個(gè)事件的對(duì)象 第二、行使里面的匿名函數(shù)進(jìn)行循環(huán),檢測(cè)觸發(fā)事件的元素是否為我們想要委托的對(duì)象 附上邏輯圖 無(wú)注釋版本代碼
本文來(lái)自:webzhan的前端技術(shù)博客 |
其他相關(guān)文章 |
|
|
|
||||||||
Copyright 2012-2025 上海蒙狼網(wǎng)絡(luò)科技有限公司 www.k16.com.cn All Rights Reserved |