禁止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 相关文章推荐
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
Jun 06 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
Jun 24 Javascript
javascript中的document.open()方法使用介绍
Oct 09 Javascript
js实现的折叠导航示例
Nov 29 Javascript
javascript动态添加删除tabs标签的方法
Jul 06 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
Jan 04 Javascript
JS实现简单的二维矩阵乘积运算
Jan 26 Javascript
很棒的js Tab选项卡切换效果
Aug 30 Javascript
Vue.js之slot深度复制详解
Mar 10 Javascript
浅谈Node.js 中间件模式
Jun 12 Javascript
记录一篇关于redux-saga的基本使用过程
Aug 18 Javascript
微信小程序监听用户登录事件的实现方法
Nov 11 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和ACCESS写聊天室(六)
2006/10/09 PHP
php 中英文语言转换类代码
2011/08/11 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
javascript window对象属性整理
2009/10/24 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
使用node.js搭建服务器
2017/05/20 Javascript
js简易版购物车功能
2017/06/17 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
json前后端数据交互相关代码
2018/09/19 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
[03:59]DOTA2英雄梦之声_第07期_水晶室女
2014/06/23 DOTA
python采集百度百科的方法
2015/06/05 Python
一张图带我们入门Python基础教程
2017/02/05 Python
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
python 文件转成16进制数组的实例
2018/07/09 Python
python和c语言的主要区别总结
2019/07/07 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
Python自带的IDE在哪里
2020/07/01 Python
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
英国家庭家具、照明和花园家具购物网站:Furniture123
2018/12/31 全球购物
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
会计职业生涯规划书
2014/01/13 职场文书
初中三好学生自我鉴定
2014/04/07 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
比较node.js和Deno
2021/04/27 Javascript