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

 

posted @ 2018-09-19 17:02  justSmile2  阅读(371)  评论(0编辑  收藏  举报