Ajax中请求被缓存的问题

在Ajax开发中,会遇到浏览器缓存内容的问题,比如,某个元素注册了鼠标事件(onmouseover),事件触发后会通过 xmlhttprequest到服务器获取内容,在不刷新页面的情况下,浏览器会缓存第一次请求的内容,服务端更新后浏览器仍然显示第一次的内容。

通常,这种请求都是xmlhttprequest发起的GET请求。根据 HTTP 规范,GET 用于信息获取,而且应该是幂等的。也就是说,当使用相同的URL重复GET请求会返回预期的相同结果时,GET方法才是适用的。当对一个请求有副作用的时候(例如,提交数据注册新用户时),应该使用POST请求而不是GET。所以浏览器会对GET请求做缓存处理。

解决办法:

一. GET请求URL后附加字串,让服务器认为不是相同的请求。

例 "http://www.example.com/index.php?class=aitcle&page=5&_t=" + new Date().getTime()

二. 在ajax发送请求前加上 xmlHttpRequest.setRequestHeader("If-Modified-Since","0")

三. 在ajax发送请求前加上 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");

四. 服务端响应请求时加 header("Cache-Control: no-cache, must-revalidate"); (PHP)

五. 使用POST代替GET,浏览器不会对POST做缓存

转自:司徒正美

转载于:https://www.cnblogs.com/oneroom/archive/2011/05/16/2047427.html

Ajax中请求被缓存的问题相关推荐

  1. 解决Ajax中IE浏览器缓存问题

    解决Ajax中IE浏览器缓存问题 1.首先,先看一张图.从这张图中我们可以清楚的了解到从请求的发出到解析响应的过程. 2.根据图中的三个节点我们可以使用三种方式解决这个缓存问题(主要是针对ie) 2. ...

  2. 微信小程序中ajax同步请求方法[转载]

    最近在做微信小程序,在ajax获取数据的时候卡了很久,需求是在一个ajax中请求完成然后用这个返回数据再去请求另一个ajax,然后把两个数据进行处理(在第一个ajax中).因为微信小程序ajax是异步 ...

  3. AJAX异步请求(Asynchronous Javascript And Xml)

    文章目录 1.传统请求及缺点 (1)传统的请求 (2)传统请求存在的问题 2.AJAX概述 3.XMLHttpRequest对象 4.AJAX GET请求 5.AJAX GET请求缓存问题 6.AJA ...

  4. ajax get 不会缓存,ajax的get请求时缓存处理解决方法

    ajax的get请求时缓存处理解决方法 本文实例讲述了ajax的get请求时缓存处理解决方法.分享给大家供大家参考.具体分析如下: 很多时候在Ajax的get方法调用的时候由于缓存的原因无法及时获取正 ...

  5. ie ajax异步缓存,IE下发送Ajax请求的缓存问题

    IE下发送Ajax请求的缓存问题 (2012-03-22 15:54:25) 标签: it 分类: web 今天下午在做要素页面无刷新添加的时候,IE下遭遇Ajax缓存戏弄,因为刚开始并不知道IE有这 ...

  6. ajax请求-IE缓存处理

    IE浏览器下使用GET发送请求时,如果两次请求的地址和参数相同,在不刷新页面的情况下,浏览器会缓存第一次的请求的内容,服务端更新后浏览器仍然显示第一次的内容 如在当前页面用户登录,在未登录的情况下,服 ...

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

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

  8. mvc ajax get请求,springMVC 中 ajax get 请求和 post 请求的坑以及参数传递

    1, ajax 请求 无论为 post ,或者 get ,url中带有?形式的参数,后台都能以String类型变量接收,变量名称和参数名称必须一致 前台ajax: $.ajax( "prod ...

  9. php中jquery ajax请求参数,浅谈Jquery中Ajax异步请求中的async参数的作用

    之前不知道这个参数的作用,上网找了前辈的博客,在此收录到自己的博客,希望能帮到更多的朋友: test.html asy.js function testAsync{ var temp; $.ajax( ...

最新文章

  1. NBT:未培养病毒基因组的最少信息标准(MIUViG)
  2. mysql多实例安装配置演示
  3. 谈VHDL/Verilog的可综合性以及对初学者的一些建议
  4. 电脑故障速排方法-显卡篇
  5. keras框架实现手写数字识别
  6. C++ 高级篇(二)—— 名空间 (Namespaces)
  7. 【剑指offer】面试题32:从上到下打印二叉树(java)
  8. StrokePlus常用脚本
  9. 大学计算机基础上机考试试卷,大学计算机基础上机考试试卷(答案).doc
  10. 腾讯翻译君在线翻译怎么翻译整个文件_希腊语怎么翻译?教你两个超实用的翻译方法...
  11. 5.10300 - Ecological Premium
  12. ktv点歌系统服务器破解,欧凯KTV卡拉OK点歌系统
  13. 文案类网页没有投诉按钮,屏蔽微信投诉按钮
  14. FT2004(D2000)开发实战之W25X10CL固件烧写
  15. sharepoint 模板安装
  16. 汉字编码变化_新编码员:薪资和时间花费如何根据人口变化
  17. 【OpenCV】OpenCV介绍及C++环境配置
  18. VS(Visual Studio)与VC(Visual C++)版本对应关系
  19. 最新仿抖音短视频APP双端源码+带安装教程/PHP后端
  20. 谁发明了世界上第一台电子计算机

热门文章

  1. 稀疏编码(Sparse Coding)(二)
  2. 第五篇第二节T语言实例开发,百变字符(版本5.3)
  3. blockingdeque java_Java BlockingDeque解决生产者与消费者问题
  4. 12v小型电机型号大全_电机型号参数大全,再不怕看不懂型号了!建议收藏
  5. 可降阶的高阶微分方程
  6. 最全的C#图片处理帮助类ImageHelper
  7. 树莓派+驱动器 控制57步进电机运动
  8. 待处理,待学习(每日更新)
  9. Luffy之Xadmin以及首页搭建(轮播图,导航)
  10. Java Script Closure(js闭包)-浅谈