五、数据缓存Data

jQuery的数据缓存模块以一种安全的方式为DOM元素附加任意类型的数据,避免了在JavaScript对象和DOM元素之间出现循环引用,以及由此而导致的内存泄露。

数据缓存模块为DOM元素和JavaScript对象提供了统一的数据设置、读取和移除方法,除了维护jQuery内部数据以外,它还支持用户自定义数据。

jQuery.hasData(elem)  判断一个DOM元素或JavaScript对象是否有关联的数据。

jQuery.data(elem, name, data, pvt)  为DOM元素或JavaScript对象设置任意类型的数据,或返回指定名称的数据,或返回关联的数据缓存对象,该方法的功能取决于参数的个数和类型。参数pvt仅在jQuery内部使用。

jQuery.removeData(elem, name, pvt)  移除通过jQuery.data()设置的数据。参数pvt仅在jQuery内部使用。

.data(key, value)  为选中的DOM元素设置或读取自定义数据,解析HTML5属性<data>,并触发自定义事件getData、setData、changeData

.removeData(key)  移除通过.data()设置的自定义数据

在jQuery内部,数据缓存模块为队列模块、动画模块、样式操作模块、事件系统提供基础功能,负责维护这些模块运行时的内部数据。

原文地址:https://www.cnblogs.com/lidongming/p/10323371.html

时间: 2024-10-11 02:18:27

五、数据缓存Data的相关文章

jQuery源代码学习之六——jQuery数据缓存Data

一.jQuery数据缓存基本原理 jQuery数据缓存就两个全局Data对象,data_user以及data_priv; 这两个对象分别用于缓存用户自定义数据和内部数据: 以data_user为例,所有用户自定义数据都被保存在这个对象的cache属性下,cache在此姑且称之为自定义数据缓存: 自定义数据缓存和DOM元素/javascript对象通过id建立关联,id的查找通过DOM元素/javascript元素下挂载的expando属性获得 话不多说,直接上代码.相关思路在代码注释中都有讲解

jQuery1.9.1源码分析--数据缓存Data模块

阅读目录 jQuery API中Data的基本使用方法介绍 jQuery.acceptData(elem)源码分析 jQuery.data(elem, name, data)源码分析 internalRemoveData方法源码分析 internalData方法的源码分析 jQuery.fn.extend({data: function( key, value ) {}})源码分析 jQuery.extend({removeData: function( elem, name ) {}})源码分

jQuery数据缓存data(name, value)详解及实现

一. jQuery数据缓存的作用 jQuery数据缓存的作用在中文API中是这样描述的:“用于在一个元素上存取数据而避免了循环引用的风险”.如何理解这句话呢,看看我下面的举例,不知道合不合适,如果你有更好的例子可以告诉我. (1) 存在循环引用风险的例子(注意getDataByName(name)方法中的for in语句): <a href="javascript:void(0);" onclick="showInfoByName(this.innerHTML);&qu

jQuery.data的是jQuery的数据缓存系统

jQuery.Data源码 jQuery.data的是jQuery的数据缓存系统.它的主要作用就是为普通对象或者DOM元素添加数据. 1 内部存储原理 这个原理很简单,原本要添加在DOM元素本身的数据,现在被集中的存储在cache集合中.它们之间靠一个从1开始的数字键来联系着.这样DOM元素就不会像以前那么笨重了,更不会出现以前那种循环引用而引起的内存泄漏.现在DOM只需要保存好这个数字键值即可.这个属性值被保存在DOM元素的一个属性里,该属性名是由jQuery.expando生成的. 2 Da

SQL Server 查看数据库在数据缓存(data cache)中占用的空间大小

1 use master 2 go 3 select * from sys.dm_os_buffer_descriptors 4 go 5 6 --查看数据库在数据缓存(data cache)中占用的空间大小 7 --由于每个数据页对应动态管理视图(dynamic management view,DMV)中的一行,为128 字节,为1/8个千字节(KB) 8 --1字节(Byte)=8位(Bit) 9 --1千字节(KB)=1024字节(Byte) 10 --1兆(MB)=1024千字节(KB)

jQuery数据缓存方案详解:$.data()的使用

我们经常使用隐藏控件或者是js全局变量来临时存储数据,全局变量容易导致命名污染,隐藏控件导致经常读写dom浪费性能.jQuery提供了自己的数据缓存方案,能够达到和隐藏控件.全局变量相同的效果,但是jQuery实现方式更优雅.为了更好地使用jQuery数据缓存方案,我们需要掌握$.data().$.cache.$.expando.$.hasData().$.removeData(). $.hasData()用来判断某个对象是否有附加的属性,可以给任何JavaScript对象和HTMLElemen

jQuery源码解读 - 数据缓存系统:jQuery.data

jQuery在1.2后引入jQuery.data(数据缓存系统),主要的作用是让一组自定义的数据可以DOM元素相关联——浅显的说:就是让一个对象和一组数据一对一的关联. 一组和Element相关的数据如何关联着这个Element一直是web前端的大姨妈,而最初的jQuery事件系统照搬Dean Edwards的addEvent.js:将回调挂载在EventTarget上,这样下来,循环引用是不可忽视的问题.而在web前端中,数据和DOM的关系太过基情和紧张,于是jQuery在1.2中,正式缔造了

jQuery对象数据缓存Cache原理及jQuery.data详解

网上有很多教你怎么使用jQuery.data(..)来实现数据缓存,但有两个用户经常使用的data([key],[value])和jQuery.data(element,[key],[value])几乎没有什么文章说清楚它们两的区别,所以我用到了,研究下分享给大家.$("").data([key],[value])与jQuery.data(element,[key],[value])的区别这两个函数都是用来在元素上存放数据也就平时所说的数据缓存,都返回jQuery对象,当时我分别在使用

jQuery中的$.fn.data数据缓存

$.fn.data.$.fn.attr.$.fn.prop区别 $.fn.data.$.fn.attr.$.fn.prop的使用方法都差不多,但是他们的用法不一样. 1 <script src="jQuery.js"></script> 2 <div id="div"></div> 3 <script> 4 $(function(){ 5 var $div = $('#div'), 6 oDiv = doc