禁止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 相关文章推荐
prototype 的说明 js类
Sep 07 Javascript
javascript css在IE和Firefox中区别分析
Feb 18 Javascript
JQuery实现简单验证码提示解决方案
Dec 20 Javascript
jquery 选择器引擎sizzle浅析
Feb 06 Javascript
详解使用fetch发送post请求时的参数处理
Apr 05 Javascript
VueJs 搭建Axios接口请求工具
Nov 20 Javascript
Vue 实现展开折叠效果的示例代码
Aug 27 Javascript
如何解决vue2.0下IE浏览器白屏问题
Sep 13 Javascript
vue+element+Java实现批量删除功能
Apr 08 Javascript
js实现多图和单图上传显示
Dec 18 Javascript
layui使用及简单的三级联动实现教程
Dec 01 Javascript
Vue的过滤器你真了解吗
Feb 24 Vue.js
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 程式大小
2006/12/06 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
php防止sql注入简单分析
2015/03/18 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
xtree.js 代码
2007/03/13 Javascript
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
javascript防篡改对象实例详解
2017/04/10 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
Python中的Django基本命令实例详解
2018/07/15 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
Python 如何测试文件是否存在
2020/07/31 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
副董事长岗位职责
2014/04/02 职场文书
给老婆的保证书范文
2014/04/28 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
初二学生评语大全
2014/12/26 职场文书
开国大典观后感
2015/06/04 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书