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

Ajax页面缓存

发布时间:2020-12-16 03:21:04 所属栏目:百科 来源:网络整理
导读:Ajax页面缓存是ajax处理数据时对一些重复相同数据进行一个缓存操作,这种设计使客户端对一些静态页面内容的请求,比如图片,css文件,js脚本等,变得更加快捷,提高了页面的响应速度,也节省了网络通信资源。 但有时候如果通过Ajax对一些后台数据进行更改的时
Ajax页面缓存是ajax处理数据时对一些重复相同数据进行一个缓存操作,这种设计使客户端对一些静态页面内容的请求,比如图片,css文件,js脚本等,变得更加快捷,提高了页面的响应速度,也节省了网络通信资源。 但有时候如果通过Ajax对一些后台数据进行更改的时候,虽然数据在后台已经发生改变,但是页面缓存中并没有改变,对于相同的URL,Ajax提交过去以后,浏览器还只是简单的从缓存中拿数据,这种情况当然就不行了。 缓存问题主要是在IE下的GET请求方式。 禁止页面缓存问题: 1. url参数添加随机数或时间戳 该方式会在客户端产生大量缓存文件。 //随机数 var url = 'demo.php?username=' + username + '&_=' + Math.random(); //时间戳 var url = 'demo.php?username=' + username + '&_=' + new Date().getTime(); 2. 修改文件最后更改时间 If-Modified-Since setRequestHeader("If-Modified-Since","0"); 这样和服务器上文件的最后修改时间肯定不一样,所以不会访问缓存文件,而是会重新访问服务器. 这种方式只会在客户端上产生一个缓存文件; var xhr = createXhr(); //创建对象 xhr.open('get',url); //初始化对象 xhr.setRequestHeader('If-Modified-Since','0'); //主动修改文件最后更改 //... 3. 禁用缓存 客户端设置: 在ajax发送请求前加上 xmlHttpRequest.setRequestHeader(“Cache-Control”,”no-cache”); 服务器端设置:在服务端加 header(“Cache-Control: no-cache,must-revalidate”);

(编辑:李大同)

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

    推荐文章
      热点阅读