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 相关文章推荐
ExtJS 2.0实用简明教程 之获得ExtJS
Apr 29 Javascript
JqGrid web打印实现代码
May 31 Javascript
自定义jQuery选项卡插件实例
Mar 27 Javascript
JS滚轮事件onmousewheel使用介绍
Nov 01 Javascript
JavaScript_object基础入门(必看篇)
Jun 13 Javascript
vue按需加载组件webpack require.ensure的方法
Dec 13 Javascript
详解vue mixins和extends的巧妙用法
Dec 20 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
Aug 20 Javascript
扫微信小程序码实现网站登陆实现解析
Aug 20 Javascript
微信小程序实现电影App导航和轮播
Nov 30 Javascript
jQuery treeview树形结构应用
Mar 24 jQuery
JavaScript获取URL参数的方法分享
Apr 07 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
第1次亲密接触PHP5(1)
2006/10/09 PHP
PHP VS ASP
2006/10/09 PHP
dedecms模板标签代码官方参考
2007/03/17 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
Yii学习总结之安装配置
2015/02/22 PHP
php中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
package.json文件配置详解
2017/06/15 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
Python实现批量下载文件
2015/05/17 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
pyspark 读取csv文件创建DataFrame的两种方法
2018/06/07 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
AJAX都有哪些有点和缺点
2012/11/03 面试题
销售人员中英文自荐信
2013/09/22 职场文书
给客户的道歉信
2014/01/13 职场文书
公司财务流程之主管工作流程
2014/03/03 职场文书
干部选拔任用方案
2014/05/26 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
如何写新闻稿
2015/07/18 职场文书