jQuery源码分析----数据缓存系统
来源:互联网 发布:网络教育平台登录 编辑:程序博客网 时间:2024/06/08 03:22
为DOM节点添加太多的自定义属性的危害:
- 循环引用时的内存泄漏
- 直接暴露数据不安全
- 多自定义属性对浏览器来说无意义
- 取数据的时候要对HTML节点进行操作
jQuery缓存系统解决了这个问题。(从事件系统分化出来的)
静态方法: $.data(ele)
实例方法:$(ele).data()
$(ele).data()
是对$.data(ele)
的扩展,
$.data(ele)可为DOM元素或者js对象添加数据
$(ele).data()是为DOM节点添加数据,会覆盖key相同的值,
jQuery缓存系统核心
数据放在内存中,通过映射关系与绑定的DOM关联。
1.实例方法:
$(ele).data()
数据存储在
jQuery.cache
中,为DOM
元素分配属性expando
,值唯一,和缓存对象 jQuery.cache关联起来,则cache[id]
就会读到所有的这个节点的缓存,
cache结构如下:
var cache={ "id1":{ 'name1':'value1', 'name2':'value2', }, "id2":{ 'name1':'value1', 'name2':'value2', },}
每个id对应一组缓存数据。所以属性名相同时会覆盖、
2.静态方法:
jQuery.data(ele,[key],[value]);
每个
ele
都有自己的{key,value}
对象,新建的对象即使key
相同也不会覆盖
var body1 = $("body")var body2 = $("body")$.data(body1, "bar", '一');$.data(body2, "bar", '二');show( $.data(body1, "bar") )show( $.data(body2, "bar") )
阅读全文
0 0
- jQuery源码分析----数据缓存系统
- jQuery源码解析-----jQuery数据缓存系统
- jQuery源码分析-07数据缓存-Cache
- jQuery-1.9.1源码分析系列(四) 缓存系统
- 字符串缓存jQuery.buildFragment源码分析
- jquery源码分析—data缓存
- jQuery源码之$.data()数据缓存
- jquery 源码分析-核心(4)数据缓存data和removeData ##data,removeData,常用方法
- jQuery缓存实现的分析-及源码解读
- jQuery数据缓存$.data 的使用以及源码解析
- MySQL源码分析(5):Innodb缓存系统
- MySQL源码分析(5):Innodb缓存系统
- 云客Drupal8源码分析之缓存系统Cache
- Guava缓存器源码分析——数据查询
- Guava缓存器源码分析——数据加载
- oschina-app 源码分析-数据缓存(离线功能)
- GreenDao源码分析及使用GreenDao实现静态数据缓存
- [ jQuery ] jQuery 源码分析!
- buff系统设计
- oracle帮助文档——Database Security Guide
- oracle中查询中文字段查询不出的问题
- java中栈 堆 寄存器 静态变量 和常量内存解析
- 斐波那契查找(黄金分割法查找)(仅使用加减实现的二分查找)
- jQuery源码分析----数据缓存系统
- java错题mark_3
- java编写Producer(线程池,kafka)
- C++:sprintf()的用法
- oracle帮助文档——Backup and Recovery User's Guide
- 简陋版BBS论坛开发ASP.NET说明书
- java基本类型、数组和枚举类型
- Matrix用法
- FX3/CX3 REQ_VENDOR自定义usb命令