第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

章節(jié)
問答
課簽
筆記
評(píng)論
占位
占位

jQuery的緩存系統(tǒng)

jQuery從1.2.3版本引入數(shù)據(jù)緩存系統(tǒng),主要的原因就是早期的事件系統(tǒng) Dean Edwards 的 ddEvent.js代碼帶來的問題:

1.沒有一個(gè)系統(tǒng)的緩存機(jī)制,它把事件的回調(diào)都放到EventTarget之上,這會(huì)引發(fā)循環(huán)引用
2.如果EventTarget是window對(duì)象,又會(huì)引發(fā)全局污染不同模塊之間用不同緩存變量

一般jQuery開發(fā),我們都喜歡便捷式的把很多屬性,比如狀態(tài)標(biāo)志都寫到dom節(jié)點(diǎn)中,也就是HTMLElement。

好處 : 

直觀,便捷。

壞處 :

1.循環(huán)引用
2.直接暴露數(shù)據(jù),安全性?
3.增加一堆的自定義屬性標(biāo)簽,對(duì)瀏覽器來說是沒意的
4.取數(shù)據(jù)的時(shí)候要對(duì)HTML節(jié)點(diǎn)做操作

jQuery緩存系統(tǒng)的真正魅力在于其內(nèi)部應(yīng)用中,動(dòng)畫、事件等都有用到這個(gè)緩存系統(tǒng)。試想如果動(dòng)畫的隊(duì)列都存儲(chǔ)到各DOM元素的自定義屬性中,這樣雖然可以方便的訪問隊(duì)列數(shù)據(jù),但也同時(shí)帶來了隱患。如果給DOM元素添加自定義的屬性和過多的數(shù)據(jù)可能會(huì)引起內(nèi)存泄漏,所以要盡量避免這么干。

A.允許我們?cè)贒OM元素上附加任意類型的數(shù)據(jù),避免了循環(huán)引用的內(nèi)存泄漏風(fēng)險(xiǎn)
B.用于存儲(chǔ)跟dom節(jié)點(diǎn)相關(guān)的數(shù)據(jù),包括事件,動(dòng)畫等
C.一種低耦合的方式讓DOM和緩存數(shù)據(jù)能夠聯(lián)系起來

 

對(duì)于jQuery來說,數(shù)據(jù)緩存系統(tǒng)本來就是為事件系統(tǒng)服務(wù)而分化出來的,到后來,它的事件克隆乃至后來的動(dòng)畫列隊(duì)實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)都是離不開緩存系統(tǒng),所以數(shù)據(jù)緩存也算是jQuery的一個(gè)核心基礎(chǔ)了。

jQuery的數(shù)據(jù)緩存接口:

jQuery.data( element, key, value )
.data( )

對(duì)于jQuery.data方法,原文如下:

The jQuery.data() method allows us to attach data of any type to DOM elements in a way that is safe from circular references and therefore from memory leaks. We can set several distinct values for a single element and retrieve them later:

在jQuery的官方文檔中,提示用戶這jQuery.data()是一個(gè)低級(jí)的方法,應(yīng)該用.data()方法來代替。$.data( element, key, value )可以對(duì)DOM元素附加任何類型的數(shù)據(jù),但應(yīng)避免循環(huán)引用而導(dǎo)致的內(nèi)存泄漏問題。

二者都是用來在元素上存放數(shù)據(jù)也就平時(shí)所說的數(shù)據(jù)緩存,都返回jQuery對(duì)象,但是內(nèi)部的處理確有本質(zhì)的區(qū)別。

通過代碼對(duì)比,參考右邊代碼:

任務(wù)

?不會(huì)了怎么辦
||

提問題

寫筆記

公開筆記
提交
||

請(qǐng)驗(yàn)證,完成請(qǐng)求

由于請(qǐng)求次數(shù)過多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求

加群二維碼

打開微信掃碼自動(dòng)綁定

您還未綁定服務(wù)號(hào)

綁定后可得到

  • · 粉絲專屬優(yōu)惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復(fù)提醒
  • · 賬號(hào)支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請(qǐng)您關(guān)注公眾號(hào)
關(guān)注后,及時(shí)獲悉本課程動(dòng)態(tài)

舉報(bào)

0/150
提交
取消
全部 精華 我要發(fā)布
全部 我要發(fā)布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費(fèi)2個(gè)積分

你的積分不足,無法發(fā)表

為什么扣積分?

本次提問將花費(fèi)2個(gè)積分

繼續(xù)發(fā)表請(qǐng)點(diǎn)擊 "確定"

為什么扣積分?