jQuery11 data() : 数据缓存
<!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() : 数据缓存的更多相关文章
- jQuery源码04 data() : 数据缓存
/* Implementation Summary 1. Enforce API surface and semantic compatibility with 1.9.x branch 2. Imp ...
- jQuery数据缓存方案详解:$.data()的使用
我们经常使用隐藏控件或者是js全局变量来临时存储数据,全局变量容易导致命名污染,隐藏控件导致经常读写dom浪费性能.jQuery提供了自己的数据缓存方案,能够达到和隐藏控件.全局变量相同的效果,但是j ...
- 【菜鸟学习jquery源码】数据缓存与data()
前言 最近比较烦,深圳的工作还没着落,论文不想弄,烦.....今天看了下jquery的数据缓存的代码,参考着Aaron的源码分析,自己有点理解了,和大家分享下.以后也打算把自己的jquery的学习心得 ...
- jQuery源码解读 - 数据缓存系统:jQuery.data
jQuery在1.2后引入jQuery.data(数据缓存系统),主要的作用是让一组自定义的数据可以DOM元素相关联——浅显的说:就是让一个对象和一组数据一对一的关联. 一组和Element相关的数据 ...
- jQuery1.9.1源码分析--数据缓存Data模块
jQuery1.9.1源码分析--数据缓存Data模块 阅读目录 jQuery API中Data的基本使用方法介绍 jQuery.acceptData(elem)源码分析 jQuery.data(el ...
- jQuery源代码学习之六——jQuery数据缓存Data
一.jQuery数据缓存基本原理 jQuery数据缓存就两个全局Data对象,data_user以及data_priv; 这两个对象分别用于缓存用户自定义数据和内部数据: 以data_user为例,所 ...
- jQuery.data的是jQuery的数据缓存系统
jQuery.Data源码 jQuery.data的是jQuery的数据缓存系统 jQuery.data的是jQuery的数据缓存系统.它的主要作用就是为普通对象或者DOM元素添加数据. 1 内部存储 ...
- jQuery数据缓存data(name, value)详解及实现
一. jQuery数据缓存的作用 jQuery数据缓存的作用在中文API中是这样描述的:“用于在一个元素上存取数据而避免了循环引用的风险”.如何理解这句话呢,看看我下面的举例,不知道合不合适,如果你有 ...
- SQL Server 查看数据库在数据缓存(data cache)中占用的空间大小
use master go select * from sys.dm_os_buffer_descriptors go --查看数据库在数据缓存(data cache)中占用的空间大小 --由于每个数 ...
随机推荐
- [USACO09JAN] 气象测量/气象牛The Baric Bovine 解题报告(DP)
题目链接:https://www.luogu.org/problemnew/show/P2933 Description 为了研究农场的气候,Betsy帮助农夫John做了N(1 <= N &l ...
- OnClientClick知识+一个上传的例子
文件名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp ...
- WLAN RTT (IEEE 802.11mc)
WLAN RTT (IEEE 802.11mc) Android 9 中的 WLAN 往返时间 (RTT) 功能允许设备测量与其他支持设备的距离:无论它们是接入点 (AP) 还是 WLAN 感知对等设 ...
- HDU-1541 Stars 树状数组
题目链接:https://cn.vjudge.net/problem/HDU-1541 题意 天上有许多星星 现给天空一个平面坐标轴,统计每个星星的level, level是指某一颗星星的左下角(x& ...
- clear---清除当前屏幕
clear命令用于清除当前屏幕终端上的任何信息.
- 监控mysqld服务
#!/bin/bash #监控mysqld服务 #telnet 192.168.122.171 3306 | grep Connected | wc -l #远程检查 #num=`netstat -n ...
- 【Round #36 (Div. 2 only) B】Safe Spots
[题目链接]:https://csacademy.com/contest/round-36/task/safe-spots/ [题意] 给你n个数字构成的序列; 每个位置上的数都由0和1组成; 对于每 ...
- CodeForces 400A Inna and Choose Options
Inna and Choose Options Time Limit: 1000ms Memory Limit: 262144KB This problem will be judged on Cod ...
- HDU 4406 GPA
GPA Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 440664 ...
- rsyslog学习
http://blog.csdn.net/zhaoyangjian724/article/details/52116809 http://blog.csdn.net/zhangxihangzhuan/ ...