日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > jquery源碼探索之----事件系統Events(一)

jquery源碼探索之----事件系統Events(一)

來源:程序員人生   發布時間:2015-05-07 09:39:49 閱讀次數:3190次

      著學習jquery的深入,發現jquery內部確切之優美,之前從沒覺得jquery是做網站必須的,但是現在看來,想做1個漏洞很少的網頁,jquery是1個利器。

     最近看jquery源碼看了很多,主要是看了1些底層支持模塊,也大概知道jquery內部的原理是甚么了,雖然記不到可能記不到很多api,但是那不重要,看到官網的api,閉著眼睛也知道它是干甚么的了。

     今天就來講說我認為jquery內部最復雜的模塊之1,事件系統。這個模塊1篇兩篇應當是講不完的了,那就1步1步跟我來梳理吧!

     還是像平常1樣,上個圖先:


視察者模式之前就說過了吧,jquery事件系統也是利用了視察者模式,在介紹之前,我們先來看看甚么是jquery的數據緩存系統。

為何要使用jquery的事件系統?

(1)jquery數據緩存系統

有些時候,我們需要給js對象或DOM對象附加1些數據,為js對象附加數據就不說了,直接可以object.data={},但是要給DOM元素附加數據時就要注意了。比以下面這類情況:

$(document).ready(function() { var button = document.getElementById('button⑴'); button.onclick = function() { console.log('hello'); return false; }; });
上面這類情勢的寫法相信大家是常常這樣寫的,我之前也是的,但是這類有甚么壞處么,在非IE閱讀器中是沒甚么問題,但是在古老的IE閱讀器中寫上上面這句話,問題就來了:

IE的dom元素的垃圾回收機制是援用計數的方式,至于援用計數是甚么方式,大家可以百度1下,這要是再展開,那就要說很久很久了。循環援用就出現了,只要循環援用1出現,就會造成內存泄漏。這里是怎樣造成循環援用的呢?



很明顯的看到,在閉包環境內,造成了循環援用,那怎樣樣來解決這個問題呢?那肯定就是數據緩存系統了。

怎樣樣避免這類循環情況?我們只需要破壞1條援用指針就能夠了。那究竟是破壞哪1條呢?

function作用域鏈援用外面button這條指針明顯是不好破壞的,由于這里常常是開發者最容易寫的,那就破壞button.click指向匿名函數這條了。

那怎樣破壞這條路徑呢?

我們來看卡jquery的事件緩存系統是怎樣做的、


jquery當中,并沒有直接援用對象,而是給dom元素設置了1個屬性jquery12123213為1,1為基本數據類型,所以不存在循環援用,但是這個1卻能跟$.cache當中的屬性1相對應,那末根據這個1就可以找到對應的事件處理函數fn,是否是覺得很奇妙,我也是這么認為的。

好,今天就說到這里了吧。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 一区二区三区在线视频观看 | 国内成人在线 | 欧美成人在线免费视频 | 免费高清av | 欧美日韩国产精品一区 | 91网站免费看 | 国产在线每日更新 | 美女福利视频 | 国产精品久久久久av福利动漫 | 91小视频版在线观看www | 国产一区欧美 | 国产精品精品视频 | 国产a视频| 嫩草影院官网 | 国产精品成人一区二区网站软件 | 亚洲自拍偷拍网站 | 精品国产乱码一区二区三区 | 成人高清视频在线观看 | 伦乱视频| 精品在线免费视频 | 99精品一区二区 | 欧美日韩国产亚洲乱码字幕 | 99re在线视频 | 色综合av在线 | 天堂男人网 | 永久免费精品视频 | 日本在线精品视频 | 综合在线视频 | 色网站免费在线 | 二区在线观看 | 狠狠插狠狠操 | 国产成人精品一区二区在线 | 在线视频日韩 | 日韩一区二区在线视频 | 日韩欧美精品在线视频 | 日韩美女毛片 | 国产精品久久久久久一区二区三区 | 亚洲国产精品第一区二区 | 欧美精品在线一区二区三区 | 午夜精品一区二区三区在线播放 | 亚洲一区 中文字幕 |