加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

setInterval与ajax——ajax的缓存问题

发布时间:2020-12-16 00:42:41 所属栏目:百科 来源:网络整理
导读:在对ajax进行serInterval操作的时候一定要在请求地址后面加上时间戳。 因为在短时间访问同一个URL,会访问缓存。 var interval = window.setInterval (function () { $.get("../Ajax/CalculateTime.aspx?time=" + new Date().getMilliseconds(), { aid: aid

在对ajax进行serInterval操作的时候一定要在请求地址后面加上时间戳。

因为在短时间访问同一个URL,会访问缓存。

var interval = window.setInterval(function () {
$.get("../Ajax/CalculateTime.aspx?time=" + new Date().getMilliseconds(),

{ aid: aid },

function (data,status) {
...............................................

})
},1000);

转载了一个ajax缓存的问题的文章

最近做项目,一直碰到缓存的问题。一些小技巧和大家分享一下。因为基本要求是做到IE和火狐浏览器兼容,一直用火狐测试,没发现缓存的问题,到IE里面出现了缓存的问题。

如果是直接用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()相同

参考博客:http://user.qzone.qq.com/935937284/blog/1329985097

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读