IE浏览器下异步请求的缓存问题

本文探讨了在IE浏览器中遇到的即时通讯未读消息更新问题,尤其是在新窗口打开时无法触发请求的情况。分析了可能的原因,并提出了三种解决方法:在URL后添加随机数或时间戳、使用$.ajax()并禁用缓存、修改服务器端响应头。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

在做即时通讯时,需要提示用户有几条未读的提醒,这个是(如果有新的提示消息立马在浏览器无刷新提示)即时获取的。但我们的做法是,当用户点击未读信息进入到信息显示页面时重新获取下未读的提醒;但是在IE浏览器下,在新窗口打开以后没有重新获取请求,再次刷新页面也没有看到请求地址。但是如果将链接打开方式改为target=_self或者_parent就不会出现这样的情况,会有第二次请求;

 

原因分析:因为IE浏览器对请求进行了缓存。。。。。也有可能跟链接的打开方式(target="_blank/_self")有关;

 

解决办法:

1,在请求地址后面追加随机数或时间戳 $.get(‘url’,{t:Math.random()}); 这样就不会调用缓存而是发送新的请求;(最简单)

 

2,使用$.ajax()发送请求,设置cache:false; 不使用框架代码:XMLHttpRequest.setRequestHeader("If-Modified-Since","0"), 或者XMLHttpRequest.setRequestHeader(‘"Cache-Control","no-cache"’)

 

3,在服务器端修改更改相应header(‘Cache-Control:no-cache,must-revalidate)

转载于:https://www.cnblogs.com/zhang-jian/p/5292190.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值