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