IE下Ajax缓存问题的解决办法

今天下午在做要素页面无刷新添加的时候,IE下遭遇Ajax缓存戏弄,因为刚开始并不知道IE有这个坏毛病,折腾了我一下午,终于解决问题。郁闷之余,总结一下解决办法:
在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱,而FF下不会出现这种情况。为了不受缓存影响,可以这样做:

IE访问策略:Internet选项--浏览历史记录--设置-- Internet 临时文件的选项改为每次访问网页时也可以

1: 在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数

在javascript发送的URL后加上t=Math.random()
例如这样:URL+"&"+"t="+Math.random();或者new Date();

2: 在XMLHttpRequest发送请求之前加上XMLHttpRequest.setRequestHeader("If-Modified-Since","0")

一般情况下,这里的XMLHttpRequest不会直接使用
你应该可以找到这样的代码
XXXXX.send(YYYYYY);
那么,就把它变成
XXXXX.setRequestHeader("If-Modified-Since","0");
XXXXX.send(YYYYYY);
实践证明,两种方法都非常有效。
1、在服务端加 header("Cache-Control: no-cache, must-revalidate");
2、在ajax发送请求前加上 xmlHttpRequest.setRequestHeader("If-Modified-Since","0");
3、在ajax发送请求前加上 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");
4、在 Ajax 的 URL 参数后加上 "?fresh=" + Math.random(); //当然这里参数 fresh 可以任意取了
5、第四种方法和第三种类似,在 URL 参数后加上 "?timestamp=" + new Date().getTime(); //推荐使用这种方式
6、用POST替代GET:不推荐

Struts2 Server端用法
<package name="json-nocache" extends="json-default">
<interceptors>
<interceptor name="cachingHeadersInterceptor" class="com.ssa.pct.web.interceptor.CachingHeaderInterceptor" />
<interceptor-stack name="defaultSecurityStack">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="cachingHeadersInterceptor" />
</interceptor-stack>
</interceptors>

<default-interceptor-ref name="defaultSecurityStack" />
</package>



public class CachingHeaderInterceptor extends AbstractInterceptor {

private static final long serialVersionUID = 1L;

public String intercept(ActionInvocation invocation) throws Exception {
ActionContext context = invocation.getInvocationContext();
HttpServletResponse response = (HttpServletResponse) context.get(StrutsStatics.HTTP_RESPONSE);
if (response != null) {
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "-1");
}
return invocation.invoke();
}

}
便携式水下动态实时视频色彩还原设备,一键快速实现对水下偏色视频和图像的色彩还原处理 便携式水下动态实时视频色彩还原,一键快速对水下图像进行色彩校正,清晰度提升和亮度均衡处理,为水下资源勘探和科学考古,海洋生态环境监测,水下机器作业等应用提供有力的协助 阅读详情

相关推荐

TPL5010硬件看门狗电路

在做一些采集频率很低的产品的时候,会考虑电池供电,比如表、电气表等,为了控制功耗,往往会在设备不需要工作的时候让它进入低功耗模式。为了设备的稳定性,避免死机后无法恢复,必须配置看门狗,一般的看门狗芯片,喂狗间隔时间是几秒钟。这样在喂狗和低功耗之间就产生了一个矛盾,频繁的喂狗就需要频繁的醒过来,这样功耗就很难做到很低。这颗看门狗芯片,特别适合上面的应用。2小时的间隔意味着主控芯片每2小时醒过来喂狗一次即可,而在2.5V供电的情况下,功耗仅仅35nA,几乎可以忽略不计。

zxm8513优快云博客 3306

Ajax 长时间无响应问题

最近做索引,在action处理中,如果注释掉更新索引的方法,Ajax则可以正常响应,但是取消注释,则后台处理完成了,数据库的数据更新,索引的文档更新都完成后,页面却无任何反应,刚开始以为是ajax响应问题,所以网上找到这篇文章,不过,后来发现我的项目中并不是由于这个问题的所在,故不知该文是否是解决该问题的最终方案,但还是先收藏该文,以备后用。 XML/HTML代码/*    v

每天=生命的最后一天 5342

AAAI2024最佳解读|FontDiffuser One-Shot Font Generation via Denoising Diffusion with Multi-Scal

本文提出了一种名为FontDiffuser的基于扩散的单次字体生成方法,旨在通过去噪扩散模型生成模仿参考图像风格的字体,同时保留源图像的内容。尽管现有的字体生成方法在性能上取得了一定的进展,但在处理复杂字符和大风格变化时仍面临挑战。FontDiffuser通过引入多尺度内容聚合(MCA)模块,有效结合不同尺度的全局和局部内容线索,从而增强复杂字符的笔画保留能力。此外,文章还提出了一种风格对比细化(SCR)模块,用于风格表示学习,利用风格提取器从图像中分离风格,并通过精心设计的风格对比损失来监督扩散模型。

haimianxiaobao11的博客 1190

浏览器缓存机制及一些缓存问题解决方法

参考:http://bbs.youkuaiyun.com/topics/330028896

Danny Chen的专栏 1万+

ndnSIM学习笔记(一)

在接下来的一段时间要用ndnSIM来做自己的仿真网络,需要系统的学习相关内容,以下为内容记录。1.安装      1.1核心依赖(必需的)             • python &gt;= 2.6             • libsqlite3             • libcrypto++             • pkg-config             • Boost lib...

gaonjzzz的博客 2985

嵌入式开发必备:aarch64-linux-gnu-gcc交叉编译工具链保姆级安装指南(含常见错误解决)

本文详细介绍了aarch64-linux-gnu-gcc交叉编译工具链的安装与配置方法,涵盖从系统软件源安装到Linaro二进制包部署的全流程。针对嵌入式开发中常见的依赖错误、版本冲突等问题提供实用解决方案,并分享性能优化技巧与项目集成经验,帮助开发者高效完成ARM64设备的跨平台开发。

yoga7的博客 1029

IIS7下的一个400 Bad Request问题

  错误信息:   HTTP 错误 400.0 - Bad Request 错误代码:0x80070057       xmlHttp.setRequestHeader("If-Modified-Since","0"); xmlHttp.setRequestHeader('If-Modified-Since', 'Sat, 01 Jan 2000 00:00:00 GMT')...

wanghu1970的专栏 785

用长tree方式做等长线

1)写一个sdc,把等长线的起点设置成clock source,用于创建create_clock,至于period和waveform等参数随便写即可。然后clock_opt -from build_clock -to route_clock即可。3)在正式cts之前或之后,给自己创建的scenario长tree并don't touch。前面讲过了如何用set_data_check做等长线,这里再讲一下如何用cts的方式做。2)为该clock创建一个新mode,并创建对应的scenario。

m0_61544122的博客 622

ie8 ajax 缓存问题,IE8下Ajax缓存问题及解决办法

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。接下来通过本文给大家介绍IE8下Ajax缓存问题及解决办法,一起看下吧Ajax简介AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJA...

weixin_35638129的博客 336

10、犹豫双模糊TOPSIS算法:原理与实例解析

本文介绍了犹豫双模糊TOPSIS算法的基本原理与应用步骤,结合中国四家纺织公司的案例,详细解析了从构建犹豫双模糊决策矩阵、归一化处理、专家信息聚合,到确定正负理想解、计算距离与相对贴近度系数的完整决策流程。该方法有效应对决策者在评价过程中的犹豫性,适用于财务评估、项目选择等复杂多属性决策场景,具有较强的实用性和推广价值。

yhn45678901的博客 122

冷门但实用:Python爬取微信公众号历史文章,突破微信反爬限制(2025有效)

2025年微信公众号爬取的核心是「冷门方法+指纹伪装」,而非常规接口破解,itchat-uos+Playwright组合是突破设备指纹的关键;登录态持久化、动态Token实时获取、频率严格控制是避免被封禁的三大核心;文章内容解析需解决2025新增的编码混淆问题,chardet+BeautifulSoup是冷门但有效的方案;合规是前提,爬取频率、数据用途需严格遵守平台/法律规则。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3775

在ie中关于ajax请求获得数据缓存问题的解决办法

ie浏览器总会出现一些很奇特的问题,比如,在默认的情况下,一般发送ajaxget请求,IE浏览器第一次会向服务器端请求,获取最新数据,如果地址和参数不编号,第二次及以后再发送请求,它就默认获取的缓存数据,这样的问题是ie中很常见的问题,一般POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的),总结几个解决的办法: 1、在ajax发送请求前加上 anyA

前端岚枫 3426

一篇文章带你快速入门 MATLAB

文章目录一、认识 MATLAB 界面二、MATLAB 的运行方式三、Matlab 中的窗口1. 命令窗口2. MATLAB的程序编辑窗口3. 工作空间窗口4. 命令历史窗口5. 图形窗口6. 当前目录窗口四、MATLAB的帮助系统1. 帮助命令2. 联机帮助五、其他知识补充1. MATLAB的搜索路径2. 变量命名规则3. M文件命名规则 一、认识 MATLAB 界面 在 MATLAB Desktop 中,工具条取代了菜单和工具栏。应用程序库收纳了 MATLAB 产品系列的应用程序,单一文件应用程序打包为一

南淮北安的博客 5126

Ajax中IE浏览器缓存问题解决办法

总结:解决Ajax中IE缓存问题可以在创建对象时在url后追加一个时间戳即可。

qq_53437460的博客 147

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Ajax IE 缓存问题解决办法

1.客户端通过添加随机字符串解决var url = BaseURL + "&timeStamp=" + new Date().getTime();var url = BaseURL + "&r=" + Math.random();2.服务端通过NoCacheFilter解决  response.setHeader("Pragma","No-cache");   response.set

逝去的41WDfWQ%5mW60F 1815

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IE浏览器下AJAX缓存问题导致数据不更新的解决办法

描述 做项目时遇到的问题: 通过AJAX请求后台时,当参数相同,IE浏览器会从缓存中取值而非从重新请求服务器。其他使用非IE内核的浏览器并无此问题。 解决 有两种解决办法; 其一: 在AJAX请求URL后面加随机数。 例如:URL + “&t=” + new Date(); 其二: 直接给AJAX参数:cache设置为false; $.ajaxSet

尽信书,则不如无书。 2645

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IE下Ajax 针对同一请求路径主动缓存问题的解决办法

在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱,而FF下不会出现这种情况。为了不受缓存影响,可以这样做: IE访问策略:Internet选项–浏览历史记录–设置– Internet 临时文件的选项改为每次访问网页时也可以 1: 在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数 在javascript发送的URL后加上t=Math.rando...

农夫的博客 486

IE下Ajax缓存问题的解决办法(get方式)

折腾了半天,程序中使用jquery的load方法进行请求,很奇怪为啥第二次无法发送请求。百度了一把,谁知load是用get方式进行请求的,因此IE浏览器对 其进行缓存了。网上搜了很多解决方案,一大把,下面是我认为比较全面的解决方案。主要分为客户端解决和服务端解决。 1.客户端解决方案 IE访问策略:Internet选项--浏览历史记录--设置-- Internet 临时文件的选项改为每次访问...

IMSIB的专栏 283

IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法

最近在测试兼容性问题的时候发现,使用Ajax的GET请求向后台获取响应结果时,如果是IE8浏览器,第一次发送请求时会得到正常的返回结果,然后当再去发送相同请求访问后台时,得到的结果总是第一次请求返回的结果。IE11、Chrome、Firefox都是正常的,只有IE8会出现这种现象。

Fanyl的博客 6745

Ajax Get 请求的缓存问题

可以在请求的路径url 后面 添加一个时间戳。这个时间戳是随时变化的。所以每一次发送的请求路径都是不同的。第二:请求路径已经被浏览器缓存过了。第二次发送请求的时候,这个路径没有变化,会走浏览器缓存。2、如果低版本的IE浏览器,怎么解决AJAX Get 请求的缓存问题?1、浏览器什么时候会走缓存?第一:是一个GET 请求。

helpluozhao123的博客 1108

IE8 ajax缓存问题

娘希匹,又遇到缓存问题了。 下面的代码,在其他浏览器都是正常的,但是在IE8中出现诡异问题。 $.ajax({ url:dataUrl, data:encodeURI(currentjsonform), dataType:'JSON', ...

weixin_34388207的博客 155

IE ajax请求缓存问题解决方法

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34336526的博客 147

ie浏览器,get请求缓存

在vue项目中开发,遇到ie请求数据缓存问题,就是当你数据修改的情况下,在次进行数据请求的时候会发生,数据缓存不会去请求服务器数据,一脸懵b。经过多方的求证,终于得到一个最正确的解决方案。get获取数据,因发送参数和地址都一致,导致IE浏览器会从缓存中取,而不会去请求服务器端,而post方式因为参数的不同,则不会产生这个问题。为了不受缓存影响,可以这样做: 1.IE访问策略: Internet选项

过客匆匆,恍如烟 2119

查询时间太长 ajax请求自动刷新,jquery ajax多次请求数据时 不刷新问题的解决方法...

jquery ajax多次请求数据时 不刷新问题的解决方法jquery的ajax在频繁请求数据,或者重复请求数据的时候出现了一个情况,那就是非ie浏览器正常,ie浏览器会设置缓存,导致第二次请求的时候不会刷新,系统报304 not modify,解决方案:jquery的ajax方法提供配置参数:cache,(只需将属性设置为false即可)详细:cache:Boolean默认:true, data...

weixin_42509196的博客 630

10.IE缓存问题

IE浏览器会对Ajax请求结果去做一个缓存,这样就会导致一个问题,下次再去发送请求的时候,就会去走本地的缓存,而不是服务器返回的最新的数据,这样一来对时效性比较强的需求就会有影响。在 url 接口上拼接一个参数,Date.now()是当前的时间戳,每次点击的时间戳都不一样,所以浏览器就会认为这是两次不同的请求,就可以避免IE缓存问题。什么是IE缓存问题?

yujiabao702的博客 224
上一篇: 门面模式(转载)
下一篇: PropertyPlaceholderConfigurer 使用简介
jja65
博客等级 码龄21年 1粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值