ajax的get请求时缓存处理解决方法

本文实例讲述了ajax的get请求时缓存处理解决方法。分享给大家供大家参考。具体分析如下:

很多时候在Ajax的get方法调用的时候由于缓存的原因无法及时获取正确的数据,这里就来分析一下解决这一问题的方法:

1. 在url后面添加一个随机数,如:

复制代码 代码如下:

http://www.test.com?a=a&b=b&r=Math.random();

2. 在url后面添加时间戳:

复制代码 代码如下:

var t = new Date().getTime();

http://www.test.com?a=a&b=b&t=t

3. 利用XMLHttpRequest对象的setRequestHeader函数来设置If-Modified-Since的值为0,如

复制代码 代码如下:

xmlHttp.setRequestHeader('If-Modified-Since', 0);

这里要理解If-Modified-Since的含义

4. 使用php的header函数

复制代码 代码如下:

header('Cache-Control:no-cache, must-revalidate');

设置不使用缓存

希望本文所述对大家的Ajax程序设计有所帮助。

时间: 2015-02-08

Ajax的缓存机制和浏览器处理资源时的缓存机制是一样的. 三条简单规则: 只要是URL相同的GET请求,浏览器会使用缓存(当然还要看服务器的Cache-Control/Expires/Last-Modified/ETag头的设置). 只要是POST请求,浏览器都不会缓存. Https的请求,浏览器不会缓存(绝大数情况如此,但是也有例外,据说FF浏览器是例外). 补充: 在URL中拼入随机的查询字符串可以使浏览器认为这是一个新的请求,从而不使用缓存. 在Ajax的请求中设置Http头: If-Mo

1.在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0"). 2.在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache"). 3.在URL后面加上一个随机数: "fresh=" + Math.random();. 4.在URL后面加上时间搓:"

使用jquery里load方法或者ajax调用页面的时候会存在cache的问题,清除cache的方法: 调用$.ajaxSetup ({cache:false}) 方法即可. 复制代码 代码如下:

在默认情况下,IE会针对请求地址缓存Ajax请求的结果.换句话说,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端.在某些情况下,这种默认的缓存机制并不是我们希望的(比如获取实时数据),这篇文章就来简单地讨论这个问题,以及介绍几种解决方案.目录 一.问题重现 二.通过为URL地址添加后缀的方式解决问题 三.通过JQuery的Ajax设置解决问题 四.通过定制响应解决问题一.问题重现我们通过一个ASP.NET MVC应用来重现IE针对Ajax请求结果的缓存.在一个空

看到别人写的JS,ajax请求地址后加随机参数,比如XXXX?t= + new Date().getTime(). 一开始搞不懂为什么,网上查了资料,原因是防止浏览器缓存. 浏览器为了提高用户访问同一页面的速度,会对页面数据进行缓存.当url请求地址不变时, 有时候会导致浏览器不发送请求,直接从缓存中读取之前的数据. 如果数据改变了,而没加随机数,读取的数据会跟之前一样. 加上随机数,就是欺骗浏览器url改变了,会每次都向服务器发送请求而不去读缓存

做东东时都是把图片在服务器的地址存放在数据库里面,然后到浏览器中显示,但是后来发现了两个问题. 第一:为了安全起见,js是无法读取本地的图片的,不然你写一个js,岂不是可以获取任何人电脑里面的文件了. 第二:图片存在的是在服务器的硬盘上面,而不是在客户的硬盘里面,所以也是取不到的 后来在网上找方法,找的方法,都是各种转换二进制到xml中,的各种高大上的答案,然后本人又实在太懒了,就自己想了一个 方法,就是利用BufferedImage这个类. 开始 首先说说我的思路,就是把本地的图片,加载到内存

在jquery里面用$.ajax 然后, 指定ajax属性的时候, 使用了:'false' . 可恶的javascript特性就在这里出现了. 在jquery里面, 大部分的时候, 属性要用''引起来. 否则容易变成变量名.比如red, 引不引都差不多.但是引起来也可以认. 所以习惯就全部引起来好了. 然而, false是个特例. 如果引起来, 导致的结果: 'false' 按true处理. 因为只有空字串才是true. 例如:在浏览器地址栏输入: javascript:alert('false

在做ajax页面无刷新添加的时候,IE下遭遇Ajax缓存,因为刚开始并不知道IE有这个坏毛病,折腾好久,终于解决问题. 总结一下解决办法: 在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱,[即get方式时,获取数据,因发送参数和地址都一致,故IE浏览器会从缓存中取,而不会去请求服务器端,而post方式因为参数的不同,不会产生这个问题]而FF下不会出现这种情况.为了不受缓存影响,可以这样做: IE访问策略: Internet选项--浏览历史记录--设置-- Int

复制代码 代码如下: var paras="ajaxFlag=getMarkerIDs"; var myAjax=new Ajax.Request( "AddInfoHandler.ashx", {method:'get',parameters:paras,onComplete:showGetMarkerIDsResponse} ); 因为我有一个切换数据库的操作,第一次进数据库A的时候,列表加载正确,点击结点(ajax)地图显示A数据,但点击ie后退再进入数据库B

一.用法 jquery的load函数是请求另一个文件并加载到当前DOM里的调用,load方法的完整格式是:load( url, [data], [callback] )(注意没有参数是GET方式请求,有参数则是 POST方法). * url:是指要导入文件的地址. * data:可选参数:因为Load不仅仅可以导入静态的html文件,还可以导入动态脚本,例如PHP文件,所以要导入的是动态文件时,我们可以把要传递的参数放在这里. * callback:可选参数:是指调用load方法并得到服务器响应

ajax缓存有好处,但也有坏处,缓存有时候会导致误操作,影响用户体验,若你的WEB项目不需要ajax缓存功能,可按下述方法来禁止ajax缓存. 一.在ASP中禁止ajax缓存: '放在ASP网页最开头部分 Response.expires=0 Response.addHeader("pragma","no-cache") Response.addHeader("Cache-Control","no-cache, must-revalid

使用jQuery的getJSON从后台定时获取数据并刷新界面,使用以下方法时,在Chrome,Firefox下没问题,但在IE9下却无法刷新数据 $.getJSON(webApp + "/GetShowData.do?limit=" + limit,function(data){ //****************** } 原因是,在IE9下,进行Ajax请求时,若与之前请求相同,则不会再从浏览器获取数据,而是直接从本地获取,因此,在请求中加上时间戳,IE9便会认为是不同的请求,代码

开始的代码如下: 复制代码 代码如下: $.ajax({ type: "get", url: "Database/App_all.xml", dataType: "xml", timeout: 2000, beforeSend: function () {}, success: function (xml) { $(xml).find("app[id='id-1']").find("auther").app

ajax简介 AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和XML(标准通用标记语言的子集). AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 步入正题: 最近在做一个网站的登录注册框,前端使用了jq

本文实例分析了ajax调用中ie缓存问题解决方法.分享给大家供大家参考,具体如下: ajax请求调用的过程中发现的问题:后台请求是一个简单的.aspx文件,而这个页面又没有考虑过缓存的影响,使用ajax调试的时候发现有时候根本不走后台代码直接返回结果了,所以估计是受到浏览器缓存的影响.网上搜了一下,果然是缓存的问题:"IE中如果XMLHttpRequest提交的URL与历史一样则使用缓存,根本不向服务器端提交.因此无法取到刚提交的数据或新的数据". 解决方法大致有下面几种: 1.只改进

网上解决办法均是 在发起请求之前添加 jQuery.support.cors=true;但是,线下测试,是ok的,一放到服务器上,又出现了新的eroor:readyState: 0, status: 0, statusText: "Error: 拒绝访问... 最后,问题是这样解决的,点击IE浏览器的的"工具->Internet 选项->安全->自定义级别"将"其他"选项中的"通过域访问数据源"选中为"启用&

本文介绍了vue下history模式刷新后404错误解决方法,分享给大家,具体如下: 官方说明文档: https://router.vuejs.org/zh/guide/essentials/history-mode.html 一. 实测 Linux 系统 Apache 配置: 更改站点配置文件即可,我这里在 Directory 标签后面添加了官方给的五行配置 #Created by linvic on 2018-05-24 Serveradmin 674

本文实例讲述了vue v-for循环重复数据无法添加问题解决方法.分享给大家供大家参考,具体如下: 问题: 错误提示如下: 解决问题的代码示例:

www.jb51.net vue v-for循环重复数据无法添加问题

ajax get 不会缓存,ajax的get请求时缓存处理解决方法相关推荐

  1. $.ajax返回的JSON格式的数据后无法执行success的解决方法

    $.ajax返回的JSON格式的数据后无法执行success的解决方法 参考文章: (1)$.ajax返回的JSON格式的数据后无法执行success的解决方法 (2)https://www.cnbl ...

  2. ajax上传文件 获取失败,Ajax上传文件/照片时报错TypeError :Illegal invocation的解决方法...

    本篇文章给大家带来的内容是关于Ajax上传文件/照片时报错TypeError :Illegal invocation的解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 问题 A ...

  3. 微信浏览器发送ajax请求执行多次解决方法

    微信浏览器发送ajax请求执行多次解决方法 参考文章: (1)微信浏览器发送ajax请求执行多次解决方法 (2)https://www.cnblogs.com/hmhhz/p/8940145.html ...

  4. Extjs6关于Ajax和form表单提交以及store请求session超时的处理方法

    对于Store的处理 每个store配置的时候,配上load监听,加载时处理: usrStore : {model : 'App.model.Usr',autoLoad : false,proxy : ...

  5. v9更新栏目缓存提示PHP has encountered a Stack overflow解决方法

    原因: 客户在把一些栏目删除或者新增栏目时没更新栏目缓存 导致v9_category表里有原来的垃圾信息,多余的表. 解决方法: 通过phpmyadmin找到栏目表出错的条目,修改错误信息. 具体步骤 ...

  6. 浏览器缓存带来的前端项目更新问题及解决方法

    先说一个前端开发中会遇到的问题,我们更新已上线的项目,用户的浏览器显示的却是旧版的页面,没有及时获取到我们更新的资源,这是什么原因造成的?此时,如果用户刷新一下页面,就得到更新后的资源,又是为什么? ...

  7. 微信一次发两个ajax请求,微信浏览器发送ajax请求执行多次解决方法

    一次sql排序的问题. select date, count(fail) as fail,count(win) as win from (select date,(case (result) when ...

  8. ie浏览器如何创建ajax,唯独ie浏览器缓存ajax请求

    用fiddler调试http请求,在ie浏览器下,如果请求命中缓存,fiddler不会包含该请求.但是在chrome下会包含缓存的请求,Result显示为304. ie浏览器还会缓存通过ajax请求的 ...

  9. ie下ajax请求不到数据库,解决IE下Ajax请求无效

    在做web开发是,大多时候都会使用FireFox作为调试的浏览器.上面携带的FireBug用来调试JavaScript实在是太方便了,绝大多数的问题都能够通过它跟踪调试出来.但是,当项目发布时,不能仅 ...

最新文章

  1. laravel5.4 关于数据填充的知识
  2. UVA 10954 Add All
  3. python使用matplotlib可视化包含倒影的柱状图(bar plot with shadow)、配置rcParams坐标轴正确显示负号(-)
  4. 【CyberSecurityLearning 附】虚拟机部署Linux操作系统(centos6.9、Ubuntu16.04)
  5. APP技巧:微信10个实用小技巧,太实用了,赶紧收藏!
  6. css 幻灯片_如何使用HTML,CSS和JavaScript创建幻灯片
  7. 前端学习(1736):前端系列javascript之创建webpack与loader使用
  8. [深入学习C#]匿名函数、委托和Lambda表达式
  9. LinkedIn首席数据科学家谈数据分析
  10. 插件基础篇3:jquery 插件开发备注
  11. 【Shiro第六篇】SpringBoot + Shiro集成缓存功能
  12. 保护生态 高山流水 直播伴侣 一对一引流互动脚本 源码
  13. 1125 Chain the Ropes
  14. 前端工程师面试时自我介绍该如何做?
  15. GPA计算器雏形--
  16. web安全攻防渗透测试实战指南
  17. android 分屏模式适配,安卓适配分屏注意事项
  18. 如何用excel筛选相似内容_excel怎么筛选出相同内容
  19. 2019规划:放下所有,轻松上阵,大胆尝试,勇于实践,经商赚钱,考证提高,随时煅炼
  20. eclipse 显示繁体中文问题

热门文章

  1. 挨踢部落故事汇(6):女攻城狮职位晋升记
  2. 在追赶产品上线的路上,我们是否为在为将来“埋雷”呢?
  3. Java 开发常用类库和API
  4. hive 把mysql语句执行_R分别连接mysql hive执行操作
  5. 阿里云智能财务软件好会计进销记账专用软件
  6. poi comment
  7. 爬取校园网新闻首页的新闻 使用正则表达式,函数抽离
  8. 干货集中营 ReactiveCocoa+RXSwift+MVVM
  9. windows server 2008 R2 服务器关机总结
  10. 【HIbernate异常】could not initialize proxy - no Session (已解决)