<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script src="jquery-2.0.3.js"></script>
<script> $(function(){ $('#div1').attr('name','hello');
alert( $('#div1').attr('name') );
document.getElementById('div1').setAttribute('name','hello');
alert( document.getElementById('div1').getAttribute('name') ); $('#div1').prop('name','hello');
alert( $('#div1').prop('name') );
document.getElementById('div1')['name'] = 'hello';
alert( document.getElementById('div1')['name'] ); $('#div1').data('name','hello');
alert( $('#div1').data('name') );
}); //DOM元素与对象之间互相引用,大部分浏览器就会出现内存泄漏
var oDiv = document.getElementById('div1');
var obj = {};
oDiv.name = obj;
obj.age = oDiv; //会出现内存泄漏
$('#div1').attr('name',obj);
//换成,就不用担心内存泄漏
$('#div1').data('name',obj);
$('body').data('age',obj); //data就是通过cache把dom元素和对象间接的联系到一起。这就防止了内存泄漏。如下图。
var cache = {//
1 : {
name : obj
},
2 : {
age : obj
}
}; </script>
</head> <body>
<div id="div1" xxx=" "></div>
</body>
</html>

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script src="jquery-2.0.3.js"></script>
<script>
//对外提供的接口
jQuery.extend({
acceptData
hasData
data
removeData
_data
_removeData
});
//对外提供的接口
jQuery.fn.extend({
data
removeData
});
//原型的方法
Data.prototype = {
key
set
get
access
remove
hasData
discard
}; $(function(){
$('#div1').data('name','hello');
alert( $('#div1').data('name') );
$('#div1').removeData('name');
alert( $('#div1').data('name') ); $.data(document.body , 'age' , 30);
alert( $.data(document.body,'age') );
$.removeData(document.body , 'age');
alert( $.data(document.body,'age') );
alert( $.hasData(document.body,'age') ); ---------------------------------------------------------
var obj = { name : "hello" };
Object.freeze(obj);
obj.name = 'hi';
alert( obj.name );//hello,不能被修改。 ---------------------------------------------------------
var obj = { name : "hello" };
//第一个参数是禁止修改的对象,后面参数是把obj变成了这个样子obj = { name : "hello",0:{} },并且这个0属性是不能被修改的。
Object.defineProperty( obj, 0, {
get: function() {
return {};
}
});
alert(obj[0]);//object json
obj[0] = 123;
alert(obj[0]);//还是 object json,
obj[name] = 456;
console.log(obj[name]);//456,
-------------------------------------------------------- $.data(document.body , 'age' , 30);
$.data(document.body , 'job' , 'it');
var cache = {//
1 : {
age : 30,
job : 'it'
},
2 : {
age : obj
}
};
$.data(document.body ,{ 'age' : 30 , 'job' : 'it' , 'allName' : '课堂'});
var cache = {//
1 : {
age : 30,
job : 'it',
'allName' : '课堂'
},
2 : {
age : obj
}
$.removeData(document.body , ['age','job','all-name']); $.data($('#div1'),'name','hello');
}); </script>
</head> <body jQuery203089541586732714850.8840931279098725="1">
<div id="div1" jQuery203089541586732714850.8840931279098725="2"></div>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script src="jquery-2.0.3.js"></script>
<script>
$(function(){
alert($('div').html());//默认获取第一个
$('div').data();//默认获取第一个
-------------------------------------------------------------
$('#div1').data('name','hello');
$('#div1').data('age','30'); alert($('#div1').get(0).dataset.miaovAll);//h5特性,data-miaov-all="妙味" console.log( $('#div1').data() );//输出{name:hello,age:30} $('#div1').data({name:'hello',age:'30'}); console.log( $('#div1').data('name-age') ); $('#div1').data('nameAge','hi');
$('#div1').data('name-age','hello'); this.cache = {
1 : {
'nameAge' : 'hello',
'name-age' : 'hello'
}
} });
</script>
</head> <body>
<div id="div1" data-miaov-all="妙味" class="box" title="123">aaaa</div>
<div>bbbb</div>
<div>cccc</div>
</body>
</html>

jQuery11 data() : 数据缓存的更多相关文章

  1. jQuery源码04 data() : 数据缓存

    /* Implementation Summary 1. Enforce API surface and semantic compatibility with 1.9.x branch 2. Imp ...

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

    我们经常使用隐藏控件或者是js全局变量来临时存储数据,全局变量容易导致命名污染,隐藏控件导致经常读写dom浪费性能.jQuery提供了自己的数据缓存方案,能够达到和隐藏控件.全局变量相同的效果,但是j ...

  3. 【菜鸟学习jquery源码】数据缓存与data()

    前言 最近比较烦,深圳的工作还没着落,论文不想弄,烦.....今天看了下jquery的数据缓存的代码,参考着Aaron的源码分析,自己有点理解了,和大家分享下.以后也打算把自己的jquery的学习心得 ...

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

    jQuery在1.2后引入jQuery.data(数据缓存系统),主要的作用是让一组自定义的数据可以DOM元素相关联——浅显的说:就是让一个对象和一组数据一对一的关联. 一组和Element相关的数据 ...

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

    jQuery1.9.1源码分析--数据缓存Data模块 阅读目录 jQuery API中Data的基本使用方法介绍 jQuery.acceptData(elem)源码分析 jQuery.data(el ...

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

    一.jQuery数据缓存基本原理 jQuery数据缓存就两个全局Data对象,data_user以及data_priv; 这两个对象分别用于缓存用户自定义数据和内部数据: 以data_user为例,所 ...

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

    jQuery.Data源码 jQuery.data的是jQuery的数据缓存系统 jQuery.data的是jQuery的数据缓存系统.它的主要作用就是为普通对象或者DOM元素添加数据. 1 内部存储 ...

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

    一. jQuery数据缓存的作用 jQuery数据缓存的作用在中文API中是这样描述的:“用于在一个元素上存取数据而避免了循环引用的风险”.如何理解这句话呢,看看我下面的举例,不知道合不合适,如果你有 ...

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

    use master go select * from sys.dm_os_buffer_descriptors go --查看数据库在数据缓存(data cache)中占用的空间大小 --由于每个数 ...

随机推荐

  1. OWIN是Open Web Server Interface for .NET

    http://owin.org/ Servers and Hosts Katana Nowin Suave Frameworks Jasper Nancy SignalR WebApi WebShar ...

  2. jzoj1495 宝石 解题报告[扫描线]

    Description 见上帝动了恻隐之心,天后也想显示一下慈悲之怀,随即从口袋中取出一块魔术方巾,让身边的美神维纳斯拿到后堂的屏风上去试试,屏风是正方形的,高和宽方向上各划有m条鱼屏风的边平行的直线 ...

  3. Scala基础简述

    * Scala基础简述 本文章作为Scala快速学习的教程,前提环境是:我假设在此之前,你已经学会了Java编程语言,并且我们以随学随用为目标(在此不会深度挖掘探讨Scala更高级层次的知识).其中语 ...

  4. Access-Control-Allow-Origin 如何设置多个值呢

    需求就是多个网站请求同一个api服务器和这里一样https://segmentfault.com/q/10... 我不是做后端的,但是我们后端不知道怎么设置,在web.config里设置了一下 < ...

  5. OGG切换步骤

    步骤描述 提前准备好切换方案:以及其他相关人员的配合 切换至容灾数据库: (1)停止前端业务,确认目标端数据已经追平 (2)数据校验,确认数据一致 (3)停止生产库OGG进程(停止后可以直接删除) ( ...

  6. SSD-实现

    一.制作voc数据集 1.数据集文件夹 新建一个文件夹,用来存放整个数据集,或者和voc2007一样的名字:VOC2007 然后像voc2007一样,在文件夹里面新建如下文件夹: 2.将训练图片放到J ...

  7. shell脚本不同运行方式的差异

    说明:以下是个人的见解,不一定都正确,如有错误,欢迎指正! 一,shell脚本的运行方式,最常见的有以下几种: 1 )  . xxx.sh,注意,前面是一个点'.' 2 ) source xxx.sh ...

  8. 洛谷 P2014 选课 && caioj 1108 树形动态规划(TreeDP)3:选课

    这里的先后关系可以看成节点和父亲的关系 在树里面,没有父亲肯定就没有节点 所以我们可以先修的看作父亲,后修的看作节点 所以这是一颗树 这题和上一道题比较相似 都是求树上最大点权和问题 但这道题是多叉树 ...

  9. Spring Cloud分布式Session共享实践

    通常情况下,Tomcat.Jetty等Servlet容器,会默认将Session保存在内存中.如果是单个服务器实例的应用,将Session保存在服务器内存中是一个非常好的方案.但是这种方案有一个缺点, ...

  10. uvalive 4730王国kingdom(并查集+线段树)

     题意:有T组測试数据.每组数据的N表示有N个城市,接下来的N行里每行给出每一个城市的坐标(0<=x,y<=1000000),然后有M(1<M<200000)个操作,操作有 ...