jQuery数据缓存用法分析


Posted in Javascript onFebruary 20, 2015

本文分析了jQuery数据缓存用法。分享给大家供大家参考。具体如下:

在jQuery的API帮助文档中,jQuery这样描述数据缓存的作用:用于在一个元素上存取数据而避免了循环引用的风险。

一、定义缓存数据

使用$(selector).data(name,value)方法可以为jQuery对象定义缓存数据。这些缓存数据被存放在匹配的DOM元素集合中所有DOM元素中。

var $link = $('a');
$link.data('linkType', 'home');

说明:$(selector).data(name,value)可以在匹配的DOM元素上存放任何格式的数据,而不仅仅是字符串。

二、获取缓存数据

此时,只需要一个参数即可,该参数指定缓存数据的名称。

var linkType = $link.data('linkType'); //'home'

说明:如果读取的缓存数据不存在,则返回值为undefined;如果jQuery集合指向多个元素,则将只返回第一个元素的对应缓存数据。

三、删除缓存数据

removeData()函数能够删除指定名称的缓存数据,并返回对应的jQuery对象。

//删除缓存数据的同时,返回对应的jQuery对象。
var $a = $link.removeData('linkType');

四、jQuery数据缓存的使用规范

随着调用data()函数次数增多,或者因使用不当,会使得cache对象急剧膨胀,最终影响程序的性能。
所以在使用jQuery数据缓存功能时,应及时清理缓存对象。jQuery提供了removeData()函数手动清除缓存数据。根据jQuery框架的运行机制,下面几种情况不需要手动清除数据缓存。

* 对elem执行remove()操作,jQuery会自动清除对象可能存在的缓存。
* 对elem执行empty()操作,如果当前elem子元素存在数据缓存,jQuery也会清楚子对象可能存在的数据缓存。
* jQuery复制节点的clone()方法不会复制data缓存。

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
解决AJAX中跨域访问出现'没有权限'的错误
Aug 20 Javascript
javascript中的对象创建 实例附注释
Feb 08 Javascript
javascript弹出层输入框(示例代码)
Dec 11 Javascript
js类定义函数时用prototype与不用的区别示例介绍
Jun 10 Javascript
javascript操作select元素实例分析
Mar 27 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
Oct 19 Javascript
javascript实现C语言经典程序题
Nov 29 Javascript
全面解析多种Bootstrap图片轮播效果
May 27 Javascript
js实现界面向原生界面发消息并跳转功能
Nov 22 Javascript
在vue-cli项目中使用bootstrap的方法示例
Apr 21 Javascript
ES6基础之解构赋值(destructuring assignment)
Feb 21 Javascript
vue实现绑定事件的方法实例代码详解
Jun 20 Javascript
jQuery性能优化技巧分析
Feb 20 #Javascript
jQuery源码解读之removeClass()方法分析
Feb 20 #Javascript
jQuery源码解读之addClass()方法分析
Feb 20 #Javascript
jQuery源码解读之hasClass()方法分析
Feb 20 #Javascript
jQuery源码解读之removeAttr()方法分析
Feb 20 #Javascript
JS实现5秒钟自动封锁div层的方法
Feb 20 #Javascript
js实现感应鼠标图片透明度变化的方法
Feb 20 #Javascript
You might like
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
js正确获取元素样式详解
2009/08/07 Javascript
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
JS实现网页每隔3秒弹出一次对话框的方法
2015/11/09 Javascript
jQuery表格的维护和删除操作
2017/02/03 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
JS开发自己的类库实例分析
2019/08/28 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
Python使用正则匹配实现抓图代码分享
2015/04/02 Python
python脚本内运行linux命令的方法
2015/07/02 Python
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
python处理csv中的空值方法
2018/06/22 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
python单例设计模式实现解析
2020/01/07 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
2013年入党人员的自我鉴定
2013/10/25 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
毕业生就业意向书
2014/04/01 职场文书
对教师的评语
2014/04/28 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
基层党员对照检查材料
2014/08/25 职场文书
县人大领导班子四风对照检查材料思想汇报
2014/10/09 职场文书
公司离职证明范本
2014/10/17 职场文书
财务人员岗位职责
2015/02/03 职场文书
婚礼父母致辞
2015/07/28 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript