禁止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 相关文章推荐
jQuery学习笔记之Helloworld
Dec 22 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
Sep 05 Javascript
swtich/if...else的替代语句
Aug 16 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
Aug 24 Javascript
Bootstrap每天必学之简单入门
Nov 19 Javascript
JS平滑无缝滚动效果的实现代码
May 06 Javascript
vue router demo详解
Oct 13 Javascript
vue2单元测试环境搭建
May 24 Javascript
js取小数点后两位四种方法
Jan 18 Javascript
vue基于两个计算属性实现选中和全选功能示例
Feb 08 Javascript
ES2020 已定稿,真实场景案例分析
May 25 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
Dec 30 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/10/09 PHP
php操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
php 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
JavaScript的面向对象(二)
2006/11/09 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
JS获取文件大小方法小结
2015/12/08 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
vue2组件实现懒加载浅析
2017/03/29 Javascript
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
Python字符串格式化的方法(两种)
2017/09/19 Python
解读! Python在人工智能中的作用
2017/11/14 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
Python测试框架:pytest学习笔记
2020/10/20 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
出国签证在职证明
2014/01/16 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
2015年度护士个人工作总结
2015/04/09 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
Redis的字符串是如何实现的
2021/10/24 Redis
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android
利用uni-app生成微信小程序的踩坑记录
2022/04/05 Javascript