Jquery IE 缓存问题】的更多相关文章

我们经常使用隐藏控件或者是js全局变量来临时存储数据,全局变量容易导致命名污染,隐藏控件导致经常读写dom浪费性能.jQuery提供了自己的数据缓存方案,能够达到和隐藏控件.全局变量相同的效果,但是jQuery实现方式更优雅.为了更好地使用jQuery数据缓存方案,我们需要掌握$.data().$.cache.$.expando.$.hasData().$.removeData(). $.hasData()用来判断某个对象是否有附加的属性,可以给任何JavaScript对象和HTMLElemen…
一.jQuery数据缓存基本原理 jQuery数据缓存就两个全局Data对象,data_user以及data_priv; 这两个对象分别用于缓存用户自定义数据和内部数据: 以data_user为例,所有用户自定义数据都被保存在这个对象的cache属性下,cache在此姑且称之为自定义数据缓存: 自定义数据缓存和DOM元素/javascript对象通过id建立关联,id的查找通过DOM元素/javascript元素下挂载的expando属性获得 话不多说,直接上代码.相关思路在代码注释中都有讲解…
不知道大家有没有发现,用jQuery选择器"选择"之后的DOM上会添加jQuery*********属性. <DIV id=d1 jQuery1294122065250="1">abc </DIV> 首先jQuery1294122065250中的"1294122065250"其实是一个时间戳.看看jQuery的源代码. var expando = "jQuery" + now(), uuid = 0, …
jQuery IE缓存问题 解决方法: 1.在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数 在javascript发送的URL后加上t=Math.random() 例如这样:URL+”&”+”t=”+Math.random();或者new Date(); 在URL参数后加上 “?timestamp=” + new Date().getTime(); 2.$.ajaxSetup({cache:false})设置全局ajax变量,将cache设为false 这样页面中所有的ajax请求…
一. jQuery数据缓存的作用 jQuery数据缓存的作用在中文API中是这样描述的:“用于在一个元素上存取数据而避免了循环引用的风险”.如何理解这句话呢,看看我下面的举例,不知道合不合适,如果你有更好的例子可以告诉我. (1) 存在循环引用风险的例子(注意getDataByName(name)方法中的for in语句): <a href="javascript:void(0);" onclick="showInfoByName(this.innerHTML);&qu…
jQuery中有三种添加数据的方法,$().attr(),$().prop(),$().data().但是前面两种是用来在元素上添加属性值的,只适合少量的数据,比如:title,class,name等.对于json这种数据量大的,就适合用data方法来添加,而data方法就是jQuery缓存机制最重要的方法. jQuery中为什么要用缓存机制系统呢?因为DOM元素与js对象之间互相引用,在大部分浏览器下会引起内存泄漏.为了解决这个问题,jQuery就写了一个缓存机制系统.举个例子: var di…
感谢广大博问博友的帮助和共同研究讨论,终于实现了一个无缓存无刷新仿购物车的小功能: 一.实现效果简述: 有一种列表,是由双层Repeater嵌套,第一层用来显示类别,第二层用来显示类别下的商品数据, 其显示效果如下: 且每一个菜名都可以单独点开进行配餐选择,效果如下: 现在要在页面无刷新不计入缓存(在最后提交选餐数据的时候计入缓存,类似购物车,但这里不希望页面刷新) 的情况下将所选择的商品名称和数量无重复的添加到一个叫做“餐饮盒”的容器里: 最终实现结果: 在修改订购数量的时候只修改餐饮盒中该商…
JS(jQuery)写缓存之:sessionStorage的运用: 结果就是讲存储的DOM对象value传到后台PHP,进行foreach(){} 解析JSON成二维数组 示例页面:http://www.xxxx.com/index.php?ctl=project&act=add_content&id=63 图片: 上1和下2 /*我的自述 我的项目 为何众筹 + 自定义章节 */ /*我的自述 我的项目 为何众筹 + 自定义章节 */ $(function(){ $('ul#tab li…
jQuery引入数据缓存机制的原因: 1.储存更DOM节点相关的数据.事件.动画等信息 2.用一种低耦合的方式让DOM节点和数据联系起来 实现原理: 1.jQuery内部创建cache对象 2.为需要缓存的DOM创建expando属性,该属性是DOM与cache对象联系的桥梁,其值为一个自增的变量ID,该ID保持全局唯一性. 3.使用DOM的expando属性的值作为cache的键来存储数据 (未完待续...)…
上一课主要讲了jQuery中的缓存机制Data构造方法的源码解析,这一课主要讲jQuery是如何利用Data对象实现有关缓存机制的静态方法和实例方法的.我们接下来,来看这几个静态方法和实例方法的源码解析: data_user = new Data();    //对外使用的数据缓存对象data_priv = new Data();    //内部的数据缓存对象,内部使用 jQuery.extend({      //在jQuery中添加静态方法 acceptData: Data.accepts,…