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中请求被缓存的问题相关推荐
- 解决Ajax中IE浏览器缓存问题
解决Ajax中IE浏览器缓存问题 1.首先,先看一张图.从这张图中我们可以清楚的了解到从请求的发出到解析响应的过程. 2.根据图中的三个节点我们可以使用三种方式解决这个缓存问题(主要是针对ie) 2. ...
- 微信小程序中ajax同步请求方法[转载]
最近在做微信小程序,在ajax获取数据的时候卡了很久,需求是在一个ajax中请求完成然后用这个返回数据再去请求另一个ajax,然后把两个数据进行处理(在第一个ajax中).因为微信小程序ajax是异步 ...
- AJAX异步请求(Asynchronous Javascript And Xml)
文章目录 1.传统请求及缺点 (1)传统的请求 (2)传统请求存在的问题 2.AJAX概述 3.XMLHttpRequest对象 4.AJAX GET请求 5.AJAX GET请求缓存问题 6.AJA ...
- ajax get 不会缓存,ajax的get请求时缓存处理解决方法
ajax的get请求时缓存处理解决方法 本文实例讲述了ajax的get请求时缓存处理解决方法.分享给大家供大家参考.具体分析如下: 很多时候在Ajax的get方法调用的时候由于缓存的原因无法及时获取正 ...
- ie ajax异步缓存,IE下发送Ajax请求的缓存问题
IE下发送Ajax请求的缓存问题 (2012-03-22 15:54:25) 标签: it 分类: web 今天下午在做要素页面无刷新添加的时候,IE下遭遇Ajax缓存戏弄,因为刚开始并不知道IE有这 ...
- ajax请求-IE缓存处理
IE浏览器下使用GET发送请求时,如果两次请求的地址和参数相同,在不刷新页面的情况下,浏览器会缓存第一次的请求的内容,服务端更新后浏览器仍然显示第一次的内容 如在当前页面用户登录,在未登录的情况下,服 ...
- ie浏览器如何创建ajax,唯独ie浏览器缓存ajax请求
用fiddler调试http请求,在ie浏览器下,如果请求命中缓存,fiddler不会包含该请求.但是在chrome下会包含缓存的请求,Result显示为304. ie浏览器还会缓存通过ajax请求的 ...
- mvc ajax get请求,springMVC 中 ajax get 请求和 post 请求的坑以及参数传递
1, ajax 请求 无论为 post ,或者 get ,url中带有?形式的参数,后台都能以String类型变量接收,变量名称和参数名称必须一致 前台ajax: $.ajax( "prod ...
- php中jquery ajax请求参数,浅谈Jquery中Ajax异步请求中的async参数的作用
之前不知道这个参数的作用,上网找了前辈的博客,在此收录到自己的博客,希望能帮到更多的朋友: test.html asy.js function testAsync{ var temp; $.ajax( ...
最新文章
- NBT:未培养病毒基因组的最少信息标准(MIUViG)
- mysql多实例安装配置演示
- 谈VHDL/Verilog的可综合性以及对初学者的一些建议
- 电脑故障速排方法-显卡篇
- keras框架实现手写数字识别
- C++ 高级篇(二)—— 名空间 (Namespaces)
- 【剑指offer】面试题32:从上到下打印二叉树(java)
- StrokePlus常用脚本
- 大学计算机基础上机考试试卷,大学计算机基础上机考试试卷(答案).doc
- 腾讯翻译君在线翻译怎么翻译整个文件_希腊语怎么翻译?教你两个超实用的翻译方法...
- 5.10300 - Ecological Premium
- ktv点歌系统服务器破解,欧凯KTV卡拉OK点歌系统
- 文案类网页没有投诉按钮,屏蔽微信投诉按钮
- FT2004(D2000)开发实战之W25X10CL固件烧写
- sharepoint 模板安装
- 汉字编码变化_新编码员:薪资和时间花费如何根据人口变化
- 【OpenCV】OpenCV介绍及C++环境配置
- VS(Visual Studio)与VC(Visual C++)版本对应关系
- 最新仿抖音短视频APP双端源码+带安装教程/PHP后端
- 谁发明了世界上第一台电子计算机
热门文章
- 稀疏编码(Sparse Coding)(二)
- 第五篇第二节T语言实例开发,百变字符(版本5.3)
- blockingdeque java_Java BlockingDeque解决生产者与消费者问题
- 12v小型电机型号大全_电机型号参数大全,再不怕看不懂型号了!建议收藏
- 可降阶的高阶微分方程
- 最全的C#图片处理帮助类ImageHelper
- 树莓派+驱动器 控制57步进电机运动
- 待处理,待学习(每日更新)
- Luffy之Xadmin以及首页搭建(轮播图,导航)
- Java Script Closure(js闭包)-浅谈