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 相关文章推荐
在IE6下发生Internet Explorer cannot open the Internet site错误
Jun 21 Javascript
JQuery获取样式中的background-color颜色值的问题
Aug 20 Javascript
浅谈JavaScript实现面向对象中的类
Dec 09 Javascript
JavaScript中的Primitive对象封装介绍
Dec 31 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
Mar 18 Javascript
jquery超简单实现手风琴效果的方法
Jun 05 Javascript
javascript中 try catch用法
Aug 16 Javascript
jquery实现左右无缝轮播图
Jul 31 Javascript
bootstrap网页框架的使用方法
May 10 Javascript
移动端触摸滑动插件swiper使用方法详解
Aug 11 Javascript
解决vue build打包之后首页白屏的问题
Mar 06 Javascript
微信小程序实现拍照和相册选取图片
May 09 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
php读取30天之内的根据算法排序的代码
2008/04/06 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
PHP实现图片压缩
2020/09/09 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
laravel orm 关联条件查询代码
2019/10/21 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
js判断日期时间有效性的方法
2015/10/24 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
python 字符串split的用法分享
2013/03/23 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
python字符串string的内置方法实例详解
2018/05/14 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
Python类装饰器实现方法详解
2018/12/21 Python
如何在 Django 模板中输出 "{{"
2020/01/24 Python
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
Kaufmann Mercantile官网:家居装饰、配件、户外及更多
2018/09/28 全球购物
纽约海:Sea New York
2018/11/04 全球购物
国旗下的讲话演讲稿
2014/05/08 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
科级干部培训心得体会
2016/01/06 职场文书
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers
css弧边选项卡的项目实践
2023/05/07 HTML / CSS