禁止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中的对象化编程
Jan 16 Javascript
Prototype Object对象 学习
Jul 12 Javascript
jquery 分页控件实现代码
Nov 30 Javascript
jQuery 追加元素的方法如append、prepend、before
Jan 16 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
Mar 18 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
Nov 15 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
May 11 Javascript
SeaJS中use函数用法实例分析
Oct 10 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
Mar 05 Javascript
使用Vuex实现一个笔记应用的方法
Mar 13 Javascript
如何为你的JS项目添加智能提示与类型检查详解
Mar 12 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
Aug 10 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
基于php iconv函数的使用详解
2013/06/09 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
JS 实现双色表格实现代码
2009/11/24 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
Python中的文件和目录操作实现代码
2011/03/13 Python
python操作xml文件详细介绍
2014/06/09 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
Python类的继承和多态代码详解
2017/12/27 Python
python如何对实例属性进行类型检查
2018/03/20 Python
python读取和保存视频文件
2018/04/16 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
详解Python locals()的陷阱
2019/03/26 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
Python实现异步IO的示例
2020/11/05 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
Eyeko美国:屡获殊荣的睫毛膏、眼线笔和眉妆
2018/07/05 全球购物
个人自我鉴定写法
2013/11/30 职场文书
大学班长的职责
2014/01/27 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
暑假社会实践证明格式
2014/10/28 职场文书
公司放假通知怎么写
2015/04/15 职场文书
工作时间调整通知
2015/04/24 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python