jQuery 的data API 實作方式有快取資料的效果
使用IE 7 (IE8 在控制台切換至IE7 模式),當DOM 節點有自訂資料屬性時,檢查DOM 節點即可看到形如jQuery18305664906559272507 的屬性,這便是用於從資料儲存物件中取得自訂資料的建置。
當自訂資料屬性是一個json 格式字串時,快取的資料如果被修改, 則修改後的資料繼續存在於快取系統中, 如果不留意,這可能會導致一些BUG
<script> <BR>var node = $( "#tst"); <BR>console.log(node.attr("data-json")); <BR>var data = node.data("json"); <BR>console.log(data); <BR>data.b = 'hello'; <BR>var data1 = JSON.parse(node.attr("data-json")); <BR>console.log(data1); <BR>console.log( 'data===data1',data===data1); <BR>var data2 = node.data("json"); <BR>console.log(data2); <BR>console.log('data= ==data2',data===data2); <BR>var data3 = JSON.parse(node.attr("data-json"));//這樣取值不受快取影響<BR>console.log( data3); <BR></script>