本文实例分析了ajax调用中ie缓存问题解决方法。分享给大家供大家参考,具体如下:
ajax请求调用的过程中发现的问题:后台请求是一个简单的.aspx文件,而这个页面又没有考虑过缓存的影响,使用ajax调试的时候发现有时候根本不走后台代码直接返回结果了,所以估计是受到浏览器缓存的影响。网上搜了一下,果然是缓存的问题:“IE中如果XMLHttpRequest提交的URL与历史一样则使用缓存,根本不向服务器端提交。因此无法取到刚提交的数据或新的数据”。
解决方法大致有下面几种:
1、只改进服务器端
(1)后台是简单的.aspx文件,直接加上复制代码 代码如下:<%@ OutPutCache Location="None"%>即可。
(2)但是如果后台是.ashx文件通常在类里直接修改缓存设置。
复制代码 代码如下:context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
2、只改进客户端
(1)利用加随机数或加时间戳改变请求地址
a、加随机数:复制代码 代码如下:var url='AjaxOperations.aspx"codetitle">复制代码 代码如下:var url='AjaxOperations.aspx"codetitle">复制代码 代码如下: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程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 金池VS刘罡2009《双声情》[WAV+CUE]
- 冯奥迪《卄》[320K/MP3][67.08MB]
- 冯奥迪《卄》[FLAC/分轨][172.46MB]
- Merryland《Merryland》[320K/MP3][69.48MB]
- 苏芮.1991-停在我心里的温柔【福茂】【WAV+CUE】
- 苏慧伦.2020-面面Every.Side.of.Me【相信音乐】【WAV+CUE】
- 群星.1991-不一样的感觉REMIX【宝丽金】【WAV+CUE】
- 银霞.1983-《你那好冷的小手》珍藏纪念版[WAV分轨]
- 银霞.2002-《国语巨星专辑VOL.3》2CD台湾版[WAV+CUE]
- 金池刘罡《昨日情歌HQ》头版限量编号[低速原抓WAV+CUE]
- 段奥娟.2024-23·岁碎念【白米范】【FLAC分轨】
- 顺子.2001-昨日·唯一·更多·顺子自选辑【魔岩】【WAV+CUE】
- 无印良品.1999-私藏三首·原创相对论(EP)【滚石】【WAV+CUE】
- Merryland《Merryland》[FLAC/分轨][170.22MB]
- 庄锭欣 ELKIE《没有你的未来》[320K/MP3][15.78MB]