数据缓存当自定义数据属性为 json 格式字符串时 jQuery 的 data api 问题

最近研究数据缓存,稍微总结一下,以后续继补充:

    jQuery 的 data API 实现方法 有缓存数据的果效

    应用 IE 7 (IE8+ 在控制台切换至IE7 模式),当DOM 点节有自定义数据性属时,检查 DOM 点节可即看到 形如 jQuery18305664906559272507 的性属,这便是 用于从数据存储象对中获得自定义数据的键。

    当 自定义数据性属是一个 json 格式字符串时,缓存的数据如果被修改, 则修改后的数据续继存在于缓存系统中, 如果不留心,这可能致导一些BUG,因为你可能没有注意到,这个数据被修改过了。

 jQuery data 实现的码源可浏览此文【jQuery1.8.2码源析解之jQuery.data】:
http://www.cnblogs.com/lovesueee/archive/2012/10/24/2737839.html

<!DOCTYPE HTML>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
</head>
<body>
 <input type="hidden" value=""  data-json='{"a":123,"b":456}' id="tst" />
<script>
var node = $("#tst");
console.log(node.attr("data-json"));

var data = node.data("json");
console.log(data);
data.b = 'hello';

var data1 = JSON.parse(node.attr("data-json"));
console.log(data1);
console.log('data===data1',data===data1);

var data2 = node.data("json");
console.log(data2);
console.log('data===data2',data===data2);

var data3 = JSON.parse(node.attr("data-json"));//这样取值不受缓存影响
console.log(data3);


</script>
</body>
</html>
    每日一道理
闷热的天,蝉儿耐不住寂寞地不停在鸣叫,我孤单一人,寂静的身旁没有一个知音,想疯狂地听摇滚乐,听歇斯底里的歌声,那只为逃避无人的世界里那浓烈的孤单气息。一个人是清冷,两个人便是精彩,于是,莫名的冲动让我格外想念旧日的好友,怀念过去的日子,尽管不够现实的遐想追回不了曾经一切,但却希望思绪可以飞扬于闭上双目后的世界中,印有微笑,印有舞动的身姿,翩翩起舞……
运行结果
{"a":123,"b":456} 
Object {a: 123, b: 456} 
Object {a: 123, b: 456} 
data===data1 false 
Object {a: 123, b: "hello"} 
data===data2 true 
Object {a: 123, b: 456} 
 

文章结束给大家分享下程序员的一些笑话语录: 苹果与谷歌之争就是封闭收费与自由免费思想之争。(别急着把google来膜拜哦?那可是一家公司,以赚钱为目标的公司!当年我Party就是这样把广大劳动人民吸引过来的。今天的结果你们都看到了。)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值