jQuery11 data() : 數據緩存
阿新 • • 發佈:2017-05-31
rip tel 引用 -c color ttr 部分 obj ges
<!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>
jQuery11 data() : 數據緩存