禁止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 图像裁剪插件Jcrop的简单使用
May 22 Javascript
JS实现self的resend
Jul 22 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
Sep 14 Javascript
JavaScript计算两个日期时间段内日期的方法
Mar 16 Javascript
js全选按钮的实现方法
Nov 17 Javascript
FullCalendar日历插件应用之数据展现(一)
Dec 23 Javascript
基于Javascript实现倒计时功能
Feb 22 Javascript
jQuery的ajax下载blob文件
Jul 21 Javascript
jQuery向webApi提交post json数据
Jan 16 Javascript
解决vue 按钮多次点击重复提交数据问题
May 10 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
May 16 Javascript
小程序封装路由文件和路由方法(5种全解析)
May 26 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
php进程间通讯实例分析
2016/07/11 PHP
php强制下载文件函数
2016/08/24 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
Mootools 1.2教程 函数
2009/09/15 Javascript
jQuery toggle()设置CSS样式
2009/11/05 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
生成二维码方法汇总
2014/12/26 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
微信小程序如何获取用户手机号
2018/01/26 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
浅谈vue加载优化策略
2019/03/19 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
Python回调函数用法实例详解
2015/07/02 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
Python selenium自动化测试模型图解
2020/04/15 Python
树莓派升级python的具体步骤
2020/07/05 Python
机械设计及其自动化专业推荐信
2013/10/31 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
先进个人评语大全
2015/01/04 职场文书
Python WSGI 规范简介
2021/04/11 Python
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python