禁止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 相关文章推荐
半角全角相互转换的js函数
Oct 16 Javascript
jQuery操作select的实例代码
Jun 14 Javascript
js简单的表格添加行和删除行操作示例
Mar 31 Javascript
JavaScript toUpperCase()方法使用详解
Aug 26 Javascript
js控住DOM实现发布微博效果
Aug 30 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
Dec 28 Javascript
浅谈Vue数据响应
Nov 05 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
Nov 15 Javascript
Vue.js组件通信之自定义事件详解
Oct 19 Javascript
Vue数据双向绑定底层实现原理
Nov 22 Javascript
VSCode搭建Vue项目的方法
Apr 30 Javascript
jQuery实现增删改查
Dec 22 jQuery
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 采集程序中常用的函数
2009/12/09 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
2019/10/23 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
一段好玩的JavaScript代码
2006/12/01 Javascript
Javascript学习笔记5 类和对象
2010/01/11 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
js中开关变量使用实例
2017/02/24 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
Django+Vue跨域环境配置详解
2018/07/06 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
Vue实现导航栏点击当前标签变色功能
2020/08/19 Javascript
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
python命令行工具Click快速掌握
2019/07/04 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
python与js主要区别点总结
2020/09/13 Python
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
如何写一封打动人心的求职信
2014/02/17 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
css3应用示例:新增的选择器
2022/03/16 HTML / CSS
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server