jq expando && $.data()

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

参考链接

读jQuery之六(缓存数据)

$.data()、$().data

原文地址:https://www.cnblogs.com/justSmile2/p/9675520.html