禁止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 相关文章推荐
FireFox中textNode分片的问题
Apr 10 Javascript
jquery里的each使用方法详解
Dec 22 Javascript
JS中 用户登录系统的解决办法
Apr 15 Javascript
Javascript执行效率全面总结
Nov 04 Javascript
js中style.display=""无效的解决方法
Oct 30 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
Mar 04 Javascript
基于JS实现仿百度百家主页的轮播图效果
Mar 06 Javascript
Vue.2.0.5过渡效果使用技巧
Mar 16 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
Apr 20 Javascript
手机注册发送验证码倒计时的简单实例
Nov 15 Javascript
angularjs实现table增加tr的方法
Feb 27 Javascript
vue 权限认证token的实现方法
Jul 17 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
Apache2 httpd.conf 中文版
2006/12/06 PHP
php连接mssql数据库的几种方法
2013/02/21 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
php实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
prototype 学习笔记整理
2009/07/17 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
javascript实现跳转菜单的具体方法
2013/07/05 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
angular.bind使用心得
2015/10/26 Javascript
理解AngularJs指令
2015/12/10 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
vue 解决路由只变化参数页面组件不更新问题
2019/11/05 Javascript
vue点击标签切换选中及互相排斥操作
2020/07/17 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
python ip正则式
2009/05/07 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
python按照多个条件排序的方法
2019/02/08 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
python绘制随机网络图形示例
2019/11/21 Python
详解python算法常用技巧与内置库
2020/10/17 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
岗位职责范本
2013/11/23 职场文书
双方协议书
2014/04/22 职场文书
2014年接待工作总结
2014/11/26 职场文书