禁止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 new后的constructor属性
Aug 05 Javascript
jQuery 选择器、DOM操作、事件、动画
Nov 25 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
Sep 04 Javascript
在React框架中实现一些AngularJS中ng指令的例子
Mar 06 Javascript
Javascript实现图片不间断滚动的代码
Jun 22 Javascript
javascript实现简单的可随机变色网页计算器示例
Dec 30 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
Oct 24 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
May 02 Javascript
Vue中错误图片的处理的实现代码
Nov 07 Javascript
js实现查询商品案例
Jul 22 Javascript
jQuery列表动态增加和删除的实现方法
Nov 05 jQuery
JS原生实现轮播图的几种方法
Mar 23 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知道与问问的采集插件代码
2010/10/12 PHP
php获取qq用户昵称和在线状态(实例分析)
2013/10/27 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
2010/01/22 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
python中文乱码的解决方法
2013/11/04 Python
python选择排序算法的实现代码
2013/11/21 Python
Python聊天室实例程序分享
2016/01/05 Python
利用Python抓取行政区划码的方法
2016/11/28 Python
目前最全的python的就业方向
2018/06/05 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
python实现操作文件(文件夹)
2019/10/31 Python
python 怎样进行内存管理
2020/11/10 Python
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
爱尔兰灯和灯具网上商店:Lights.ie
2018/03/26 全球购物
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
软件配置管理有什么好处
2015/04/15 面试题
应届毕业生的自我鉴定
2013/11/13 职场文书
最经典的商业地产项目广告词
2014/03/13 职场文书
选秀节目策划方案
2014/06/06 职场文书
毕业生面试求职信
2014/06/23 职场文书
Window server中安装Redis的超详细教程
2021/11/17 Redis
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技