最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

當自定義數(shù)據(jù)屬性為json格式字符串時jQuery的data api問題探討

 更新時間:2013年02月18日 09:22:04   作者:  
當自定義數(shù)據(jù)屬性是一個 json 格式字符串時,緩存的數(shù)據(jù)如果被修改, 則修改后的數(shù)據(jù)繼續(xù)存在于緩存系統(tǒng)中, 如果不留意,這可能導(dǎo)致一些BUG,接下來將對此問題詳細概述下
jQuery 的 data API 實現(xiàn)方式有緩存數(shù)據(jù)的效果
使用 IE 7 (IE8+ 在控制臺切換至IE7 模式),當DOM 節(jié)點有自定義數(shù)據(jù)屬性時,檢查 DOM 節(jié)點即可看到 形如 jQuery18305664906559272507 的屬性,這便是 用于從數(shù)據(jù)存儲對象中獲取自定義數(shù)據(jù)的建。

當自定義數(shù)據(jù)屬性是一個 json 格式字符串時,緩存的數(shù)據(jù)如果被修改, 則修改后的數(shù)據(jù)繼續(xù)存在于緩存系統(tǒng)中, 如果不留意,這可能導(dǎo)致一些BUG
復(fù)制代碼 代碼如下:

<!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>

運行結(jié)果
復(fù)制代碼 代碼如下:

{"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}

相關(guān)文章

最新評論

镇康县| 河间市| 霸州市| 老河口市| 广德县| 荆门市| 内乡县| 军事| 成武县| 西青区| 汨罗市| 涞源县| 汕头市| 炉霍县| 伽师县| 望都县| 临江市| 阳西县| 若羌县| 怀仁县| 梓潼县| 大宁县| 进贤县| 聂荣县| 玉田县| 蚌埠市| 白银市| 清新县| 巴南区| 肃北| 汪清县| 资溪县| 塘沽区| 徐州市| 孙吴县| 克东县| 柳州市| 延吉市| 上饶市| 夏河县| 玛曲县|