失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > ajax调用中ie缓存问题解决方法

ajax调用中ie缓存问题解决方法

时间:2022-03-09 07:40:49

相关推荐

ajax调用中ie缓存问题解决方法

web前端|js教程

ajax,ie,解决

web前端-js教程本文实例分析了ajax调用中ie缓存问题解决方法。分享给大家供大家参考,具体如下:

象棋网站源码,UBUNTU安装马桶喷枪,tomcat版本号如何修改,搜索引擎爬虫与反爬虫技术,php 监控文件夹变动,王者seo框架lzw

ajax请求调用的过程中发现的问题:后台请求是一个简单的.aspx文件,而这个页面又没有考虑过缓存的影响,使用ajax调试的时候发现有时候根本不走后台代码直接返回结果了,所以估计是受到浏览器缓存的影响。网上搜了一下,果然是缓存的问题:“IE中如果XMLHttpRequest提交的URL与历史一样则使用缓存,根本不向服务器端提交。因此无法取到刚提交的数据或新的数据”。

源码(抓取完整页面及首屏),vscode 查找字段,ubuntu krfb,tomcat 假死 排查,sqlite数据库列表,淘宝常用插件,挂号网站用什么框架写前端,爬虫系统功能模块图标,php 调用 dubbo,通讯产品seo优化,医院网站后台模板,网页slider,整形医院 单据模板lzw

解决方法大致有下面几种:

android 项目源码下载,微pe安装ubuntu,新闻爬虫源代码,php诱导,盐山seo优化lzw

1、只改进服务器端

(1)后台是简单的.aspx文件,直接加上

即可。

(2)但是如果后台是.ashx文件通常在类里直接修改缓存设置。

context.Response.Cache.SetCacheability(HttpCacheability.NoCache);

2、只改进客户端

(1)利用加随机数或加时间戳改变请求地址

a、加随机数:

var url=AjaxOperations.aspx?rdm=+Math.random()+&action=+op;

b、加时间戳:

var url=AjaxOperations.aspx?dtStamp=+new Date().getTime()+&action=+op;

这一种解决方案,只需要加个时间或随机数作为参数,服务器端不需要任何改动就可以达到目的。

(2)前台异步调用设置XMLHttpRequest对象的属性

在XMLHttpRequest发送请求之前加上

XMLHttpRequest.setRequestHeader("If-Modified-Since","0")

个人认为这个才是“正道”。因为你不能明确哪些ajax请求是需要还是不需要缓存的(解决网站的性能瓶颈,利用有缓存的ajax居多),所以每次在发送请求的时候确认一下是否要缓存,相对于2中的第(1)条显然少写了一个url参数,而且服务器端(改进方法1)也不需要改变设置,但是对于已经封装好的ajax库,你可能已经不能在外面直接使用XMLHttpRequest对象了,通常的设置语法可能是将(“If-Modified-Since”,”0″)作为参数传递:ajaxObj.sendPost(其他参数列表,….”If-Modified-Since”,”0″); (post方式)

或者 ajaxObj.sendGet(其他参数列表,….”If-Modified-Since”,”0″); (get方式)

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

详解Ajax和form+iframe 实现文件上传的方法

浅析巧用Ajax的beforeSend提高用户体验

ajax传送参数含有特殊字符的快速解决方法

如果觉得《ajax调用中ie缓存问题解决方法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。