迴圈引用時的記憶體洩漏jquery快取系統解決了這個問題。(從事件系統分化出來的)直接暴露資料不安全
多自定義屬性對瀏覽器來說無意義
取資料的時候要對html節點進行操作
靜態方法:$.data(ele)
例項方法:$(ele).data()
$(ele).data()
是對$.data(ele)
的擴充套件,
$.data(ele)可為dom元素或者js物件新增資料$(ele).data()是為dom節點新增資料,會覆蓋key相同的值,
資料放在記憶體中,通過對映關係與繫結的dom關聯。1.例項方法:
$(ele).data
()
資料儲存在cache結構如下:jquery.cache
中,為dom
元素分配屬性expando
,值唯一,和快取物件 jquery.cache關聯起來,則cache[id]
就會讀到所有的這個節點的快取,
var
cache
=, "id2":,
}
每個id對應一組快取資料。所以屬性名相同時會覆蓋、
2.靜態方法:
jquery.data
(ele,[key],[value]);
每個ele
都有自己的物件,新建的物件即使
key
相同也不會覆蓋
var body1 = $("body")
var body2 = $("body")
$.data(body1, "bar", '一');
$.data(body2, "bar", '二');
show( $.data(body1, "bar") )
show( $.data(body2, "bar") )
jquery原始碼分析 data快取
data和attr prop的作用類似 都是給元素新增屬性,但是data可以防止dom元素與物件之間的互相引用,從而防止出現記憶體洩漏的現象。data可以作為工具方法和例項方法使用 var obj data obj,name hello removedata obj,name console.log...
jQuery 2 0 3 原始碼分析 資料快取
var aa1 aaron var aa2 aaron 覆蓋 aa1.data a 1111 結果2222222 aa2.data a 2222 結果2222222 console.log aa1.data a console.log aa2.data a 不覆蓋 data aa1,b 1111 d...
jQuery原始碼分析
工具 版本說明 版本號備註 jquery 2.1.1 sublime 3jquery function selector,context jquery.fn jquery.prototype 快速匹配正則 不加g 不光匹配整體項還會匹配到子項 rquickexpr s w w w init jque...