jqueryajax使用缓存
‘壹’ jquery的轮询使用ajax导致内存溢出问题
你这种情况就不应该用轮询,而应该在ajax的回调函数(最好是complete)中再次发起下一次请求,这样就可以保证每次请求都是在上一次请求结束后才发起的,这样就不会造成崩溃了。比如:
function xxx(){
$.ajax({
url:"......",
data:{......},
success:function(data){
//处理返回数据
},
error:function(){
//处理错误
},
complete:function(){ //不管成功与失败,都会发生complete回调
setTimeout(xxx,5000); //5秒后再次发起ajax请求
//也可以直接用 xxx();可以做到完全实时,但会牺牲一些性能
}
});
}
特别注意,xxx函数在外部调用时,不能再用setInterval,而应该是xxx()直接调用!
‘贰’ jquery里的缓存问题如何解决AJAX面试题
如果直接用jQuery里的$.ajax()方法的话,去除缓存很简单,只需要配置一下缓存属性cache为false,但如果想要简单写法getJSON(),去除缓存就不能通过配置来解决了。因为getJSON根本没有这个缓存属性让你来配置。因为如果其调用的地址URL和之前的一样的话,回调函数会直接在缓存里面读取数据,而不是进后台调用相应的方法。 解决方法就是让他的每次请求的URL地址不一样就行,但是同时又要不影响请求的服务所需要的数据,那么可以有一下几种方法: 1、$.getJSON(URL?t=+new Date(),function(json){});就是原有的URL基础上加一个时间变量,每次的请求地址就不一样了。 2、$.getJSON(URL?rand=+Math.random,function(json){});就是原有的URL基础上加上一个随机变量,不过这个方法有风险,万一随机数一样。。。。。。 3、第三种方法就是自己定义一个递增变量,在URL后面加上这个递增变量,每次请求完后,就递增一下。 $.get()去除缓存的方法和$.getJSON()相同。
‘叁’ 在jquery ajax里面cache怎么用
使用方法:jQuery.ajax( options )
其中options有很参数,是以key/value形式出现的。
在使用过程中,遇到过一个问题,就是回调方法不执行,后来查了一下,是缓存的问题。
cache Default: true,
Added in jQuery 1.2, if set to false it will force the pages that you request to not be cached by the browser.
所以如果不想使用缓存,只要cache:false就可以了。
如:
$.ajax({ type: "POST", url: "some.php",
cache:false, success: function(msg){ alert( "Data Saved: " + msg ); } })
‘肆’ jquery ajax缓存问题
图片的名字还是不变么?在图片src中加个参数,如
$("img").attr("src","test.jpg?rand="+ new Date().getTime()+Math.random());
‘伍’ 如何取出jquery ajax的缓存信息
您好,我来为您解答:
Get方式:
用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照URL参数的格式附加在请求行中的资源路径后面。另外最重要的一点是,它会被客户端的浏览器缓存起来,那么,别人就可以从浏览器的历史记录中,读取到此客户的数据,比如帐号和密码等。因此,在某些情况下,get方法会带来严重的安全性问题。
Post方式:
当使用POST方式时,浏览器把各表单字段元素及其数据作为HTTP消息的实体内容发送给Web服务器,而不是作为URL地址的参数进行传递,使用POST方式传递的数据量要比使用GET方式传送的数据量大的多。
总之,GET方式传送数据量小,处理效率高,安全性低,会被缓存,而POST反之。仅供参考。
如果我的回答没能帮助您,请继续追问。
‘陆’ 如何禁用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的ajax请求的缓存问题
如果没有进行额外设置的话,如果请求的地址和参数及参数的值完全一样,就会发生使用缓存的情况。我碰到过很多这样的。
‘捌’ jquery使用ajax技术缓冲页面
你这是当然的不会出现遮罩层啊。ajax就是异步请求数据,在执行ajax的时候,js语句继续往下执行。也就是走showorhidebg(2);
也就是你那上面的代码,显示出了遮罩层,立马就把遮罩层隐藏掉(可以打断点调试,就能发现遮罩层出现了,然后又消失)……正确的做法是,把遮罩层隐藏放入ajax请求完成之后。也就是你上面的do what 里面。
‘玖’ 有关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