1.使用隐藏控件或者是js全局变量来临时存储数据,全局变量容易导致命名污染,隐藏控件导致经常读写dom浪费性能
jQuery提供了自己的数据缓存方案,使用jQuery数据缓存方案,我们需要掌握$.data()、$.cache、$.expando、$.hasData()、$.removeData()。
1.1 $.hasData()用来判断某个对象是否有附加的属性,可以给任何javascript对象和HTMLElement对象附加属性
1.2 $.data()用来读取或者修改属性值
1.3 $.removeData()用来删除已经添加的属性,这是为了释放内存,避免过多无用属性浪费内存
1.4 为普通JS对象提供缓存时,jquery直接将数据保存在原始的JS对象上。此时会偷偷的给JS对象添加个属性 $.expando (expandable object 的缩写,表示可扩展的对象)
2. jQuery.expando 是一个字符串
expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /D/g, "" ),
jQuery19109145524849564901 (版本号1.9.1,$.fn 、 $.fn.jquery)