禁止ajax缓存获取程序最新数据的方法


Posted in Javascript onNovember 19, 2013

今天做项目,几乎所有的提交都是通过ajax来提交,我测试的时候发现,每次提交后得到的数据都是一样的,调试可以排除后台代码的问题,所以问题肯定是出在前台。每次清除缓存后,就会得到一个新的数据,所以归根到底就是浏览器缓存问题。纠结了很久,终于解决了,在这里总结一下。

我们都知道ajax能提高页面载入的速度主要的原因是通过ajax减少了重复数据的载入,也就是说在载入数据的同时将数据缓存到内存中,一旦数据被加载其中,只要我们没有刷新页面,这些数据就会一直被缓存在内存中,当我们提交 的URL与历史的URL一致时,就不需要提交给服务器,也就是不需要从服务器上面去获取数据,虽然这样降低了服务器的负载提高了用户的体验,但是我们不能获取最新的数据。为了保证我们读取的信息都是最新的,我们就需要禁止他的缓存功能。

解决方案有如下几种:

1、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。

2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。

3、在URL后面加上一个随机数: "fresh=" + Math.random();。

4、在URL后面加上时间搓:"nowtime=" + new Date().getTime();。

5、如果是使用jQuery,直接这样就可以了$.ajaxSetup({cache:false})。这样页面的所有ajax都会执行这条语句就是不需要保存缓

存记录。

Javascript 相关文章推荐
javascript实现图片跟随鼠标移动效果的方法
May 13 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
jquery中toggle函数交替使用问题
Jun 22 Javascript
javascript定义类和类的实现实例详解
Dec 01 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
Jan 20 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
May 21 Javascript
js实现图片粘贴上传到服务器并展示的实例
Nov 08 Javascript
利用npm 安装删除模块的方法
May 15 Javascript
vue.js自定义组件directives的实例代码
Nov 09 Javascript
vue全屏事件开发详解
Jun 17 Javascript
vue实现在线学生录入系统
May 30 Javascript
JS ES6异步解决方案
Apr 29 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
Nov 19 #Javascript
jQuery控制iFrame(实例代码)
Nov 19 #Javascript
jquery 检测元素是否存在的实例代码
Nov 19 #Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
Nov 19 #Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
Nov 19 #Javascript
JavaScript中instanceof运算符的用法总结
Nov 19 #Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
Nov 19 #Javascript
You might like
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
一个程序下载的管理程序(四)
2006/10/09 PHP
提高PHP编程效率的方法
2013/11/07 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
英国在线照明超市:Castlegate Lights
2019/10/30 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
2015年小学美术工作总结
2015/05/25 职场文书
追悼会悼词大全
2015/06/23 职场文书
新教师教学工作总结
2015/08/12 职场文书
Mysql开启外网访问
2022/05/15 MySQL