‘壹’ 如何禁用jquery ajax缓存
我们先看看这个问题是怎么引起来的:
如果没有进行额外设置的话,如果请求的地址和参数及参数的值完全一样,就会发生jquery ajax使用缓存的情况。
jquery ajax使用缓存的解决方案:
1.在请求的url后面加上一个随机参数(***.do?random=Math.random)这不失为一个好方法,缺点就是在所有的jquery ajax请求的地方都要加上这个随机参数,新项目还行,老项目的花,这是个巨大的工作量。
2.给jquery ajax请求设置禁用缓存的全局设置
我们都知道在jquery ajax的的方法中有个cache参数,如果设置为false,那么就不进行缓存。这么怎么设置全局的jquery ajax cache参数呢?
答案就是ajaxSetup() 方法,该方法可以为所有的ajax请求统一设置默认参数。那么可以设置如下代码:
$(function(){
$.ajaxSetup ({
cache: false //关闭AJAX缓存
});
});
最后如果没有common.js文件(所有页面都调用的JS文件),那么把这段代码放到jquery库文件里面吧。
解答完毕!
‘贰’ jquery怎样清除浏览器缓存
下载软件、文件过多;使用过程中产生的缓存数据堆积而不清理。就会导致手机存储空间不足。建议安装内存卡,并清理手机内部存储空间。具体方法如下:
1.在手机设置--应用程序管理--全部应用中,打开各应用程序详情,点击清空缓存数据。
2.在手机文件管理中,删除软件安装包,文档,压缩文件,以已删除软件命名的文件夹。
3.卸载部分不常用软件。
4.清除部分视频,音乐,图片等大文件。
5.在应用程序管理中尽可能将软件应用移动至内存卡。
6.在手机设置--存储中,将默认存储空间设置为内存卡。
7.在文件管理中,将视频、音乐、图片文件移动至内存卡。
‘叁’ jquery load()缓存问题
我看了你的问题和对楼下的追问,问题的原因应该是你的新加载页面中为查看按钮绑定了事件,解决方法是在绑定事件之前先执行反绑定,例如$(btn).unbind('click'),然后再$(btn).bind('click', fn),这样就好了。
‘肆’ 有关jquery中ajax的缓存问题,怎么解决
jquery中ajax的缓存问题需要增加参数cache:
$.ajax({
type: "GET",
cache: true,
url: 'aa.php',
dataType: "html",
cache: true,
success: function (res) {
$('.page-loading').remove();
$('.page-content .page-content-body').html(res);
});
这样类似以下请求就可以缓存了:
aa.com/aa.php
aa.com/aa.css
aa.com/aa.js?_=1373600904652
‘伍’ 如何缓存jquery选择器
当你开始在你的jQuery代码里积攒出各种各样的选择器时,你就能领会到在对象中缓存选择器 – 以键值对的形式 – 是多么美好。这使得你更容易在脚本中的任何地方访问它们,并且维护这些选择器也是轻而易举的事。
缓存选择器后,改进过的代码会像这样,
?var someNamespace_Dom = { someSelector : 'jQuery("#some-selector")', anotherElement: 'jQuery("#another-element")',}; jQuery(document).ready(function() { someNamespace_Dom.someSelector.on('hover', function() { jQuery(this).fadeOut('slow').delay(400).fadeIn(); console.log(jQuery(this).text()); }); someNamespace_Dom.anotherElement.on('hover', function() { jQuery(this).slideUp(); }); someNamespace_Dom.someSelector.on('click', function() { alert('You have clicked a featured element'); }); someNamespace_Dom.anotherElement.on('mouseout', function() { jQuery(this).slideUp(); });});
由于选择器已经被缓存到变量中,DOM 树不再需要被重复遍历来寻找被操作的元素。‘someNamespace_Dom' 对象可以被用来添加更多键值对,使得维护工作很轻松。
‘陆’ jquery缓存系统能避免内存泄露吗
jQuery缓存系统的真正魅力在于其内部应用中,动画、事件等都有用到这个缓存系统。如果给DOM元素添加自定义的属性和过多的数据可能会引起内存泄漏,所以要尽量避免这么干。
内存泄露的几种情况:
1 .循环引用
2 .Javascript闭包
3. DOM插入顺序
一个DOM对象被一个Javascript对象引用,与此同时又引用同一个或其它的Javascript对象,这个DOM对象可能会引发内存泄漏。这个DOM对象的引用将不会在脚本停止的时候被垃圾回收器回收。要想破坏循环引用,引用DOM元素的对象或DOM对象的引用需要被赋值为null。
含有DOM对象的循环引用将导致大部分当前主流浏览器内存泄露
第一种:多个对象循环引用
var a=new Object;
var b=new Object;
a.r=b;
b.r=a;
第二种:循环引用自己
var a=new Object;
a.r=a;
循环引用很常见且大部分情况下是无害的,但当参与循环引用的对象中有DOM对象或者ActiveX对象时,循环引用将导致内存泄露。
我们把例子中的任何一个new Object替换成document.getElementById或者document.createElement就会发生内存泄露了。
具体的就深入讨论了,这里的总结
JS的内存泄露,无怪乎就是从DOM中remove了元素,但是依然有变量或者对象引用了该DOM对象。然后内存中无法删除。使得浏览器的内存占用居高不下。这种内存占用,随着浏览器的刷新,会自动释放。
而另外一种情况,就是循环引用,一个DOM对象和JS对象之间互相引用,这样造成的情况更严重一些,即使刷新,内存也不会减少。这就是严格意义上说的内存泄露了。
所以在平时实际应用中, 我们经常需要给元素缓存一些数据,并且这些数据往往和DOM元素紧密相关。由于DOM元素(节点)也是对象, 所以我们可以直接扩展DOM元素的属性,但是如果给DOM元素添加自定义的属性和过多的数据可能会引起内存泄漏,所以应该要尽量避免这样做。 因此更好的解决方法是使用一种低耦合的方式让DOM和缓存数据能够联系起来。
结论是肯定无法避免内存泄漏,只是看您的编写习惯,尽量去避免。
‘柒’ jquery.datatable的缓存问题怎么解决
jquery中ajax的缓存问题需要增加参数cache: $.ajax({ type: "GET", cache: true, url: 'aa.php', dataType: "html", cache: true, success: function (res) { $('.page-loading').remove(); $('.page-content .page-content-body').html(res); }...
‘捌’ jquery如何获取浏览器中缓存的用户名
靠着 jquery是做不到的 谢谢 除非通过 ajax 或者普通的 request response 与服务器进行交互 或者是 小脚本读取本地的cookie文件 才能获取 谢谢 希望能帮到你
‘玖’ jquery .data()缓存数据有用吗刷新页面就没了
没有缓存数据的作用,只是方便在某一域上存取对象
‘拾’ JQuery中ajax如何缓存引入的js文件
认为CSS和JS不是AJAX时候加载的,是在CALLBACK里填充到现有页面时加载的,可以在CALLBACK第一行打个断点验证一下,断住时应该只有aa.php的请求。
如果猜测正确,可以在$('.page-content.page-content-body').html(res);之前,把res里的js地址替换了再插进去。