jquery.data的方法根本原理,就是在一个全局的对象里面进行数据的存储是吗?
1 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
jQuery 1.x版本中是这么处理的,附加给DOM的data
被存储到jQuery.cache
对象中,获取$(el).data('a')
的时候先查找el[jQuery.expando]
的值,使用这个值作为key
从jQuery.cache
对象中查找value
,返回值就是与该DOM元素关联的data
对象,最终获取路径则为jQuery.cache[el[jQuery.expando]].data['a']
之所以要这么做是因为IE8下把一个引用对象附加给DOM,再把该DOM移除后那个附加上来的对象就无法被释放了,从而造成内存泄漏。
现代浏览器中不会出现这种现象,所以从jQuery 2.x及之后的版本中不再这么处理data
了。
添加回答
举报
0/150
提交
取消