解决$.getJSON在IE浏览器下出现数据缓存,第一次访问某个后台路径之后,再次访问该路径不再走后台的方法。
最近写代码的时候遇到一个小问题,我用的是火狐,项目里测试人员用的是IE,当用jquery的getjson函数从后台获取数据的时候,IE浏览器会自动设置缓存,如果此时你对数据进行修改的时候刷新页面,IE并不会在页面显 示你修改后的数据,因为你刷新的时候IE浏览器会查找缓存并显示你修改前的数据,试了一些方法未果,最后在网上查了些资料终于解决了IE浏览器下的问题。
例如我们在IE浏览器中使用$.getJSON执行删除数据的操作,我们第一次执行删除数据的操作,操作成功,我们第二次或以后再次执行删除数据的操作,操作不成功,数据没有被删除。原因是$.getJSON在IE浏览器下默认会使用浏览器缓存,所以第二次之后不再访问删除数据的后台方法,所以数据没有被删除成功。解决方法如下:
1.$.getJSON是简写的 Ajax 函数,使用$.ajax代替改函数即解决。
$.ajax(webContext+"/ecs/ecs_detachCloudDisk.action?id="+id, function(json){
if(json.success){
Alert("实例("+instanceId+")下的磁盘("+diskid+")卸载成功!");
$('#datadisk_list').datagrid("reload");
}else{
Alert("实例("+instanceId+")下的磁盘("+diskid+")卸载失败!");
}
});
开始我是直接这样写的:
$.getJSON(webContext+"/ecs/ecs_detachCloudDisk.action?id="+id, function(json){
if(json.success){
Alert("实例("+instanceId+")下的磁盘("+diskid+")卸载成功!");
$('#datadisk_list').datagrid("reload");
}else{
Alert("实例("+instanceId+")下的磁盘("+diskid+")卸载失败!");
}
});
2.在你的请求的URL 后面设置个可变的参数(可以是时间,也可以是一个随机数,只要是一个随时可变的参数即可),比如:
$.getJSON(webContext+"/ecs/ecs_detachCloudDisk.action?id="+id+"&time="+new Date().getTime(), function(json){
if(json.success){
Alert("实例("+instanceId+")下的磁盘("+diskid+")卸载成功!");
$('#datadisk_list').datagrid("reload");
}else{
Alert("实例("+instanceId+")下的磁盘("+diskid+")卸载失败!");
}
});
开始我是直接这样写的(没有加"&time="+new Date().getTime()):
$.getJSON(webContext+"/ecs/ecs_detachCloudDisk.action?id="+id, function(json){
if(json.success){
Alert("实例("+instanceId+")下的磁盘("+diskid+")卸载成功!");
$('#datadisk_list').datagrid("reload");
}else{
Alert("实例("+instanceId+")下的磁盘("+diskid+")卸载失败!");
}
});
补充:
后来我用$.ajax方式的访问在IE浏览器下也会出现上面所说的缓存问题,解决方式是建议在URL 后面也设置个可变的参数,这样就可以解决了。
解决$.getJSON在IE浏览器下出现数据缓存,第一次访问某个后台路径之后,再次访问该路径不再走后台的方法。的更多相关文章
- (转)如何让ActiveXObject( "Microsoft.XmlDom ")对象在非IE浏览器下显示数据?firefox(火狐)
如何让ActiveXObject( "Microsoft.XmlDom ")对象在非IE浏览器下显示数据?firefox(火狐) 2013-09-10 16:01 2152人阅读 ...
- chrome浏览器的跨域设置 Google Chrome浏览器下开启禁用缓存和js跨域限制--disable-web-security
chrome用户默认路径 Win7:C:\Users\[用户名]\AppData\Local\Google\Chrome\User Data\XP:C:\Documents and Settings\ ...
- Angularjs在360兼容模式下取数据缓存问题解决办法
测试提了一个bug,在360浏览器兼容模式下,删除页面数据需要手动刷新浏览器才能看到最新的数据.首先要复现当时的问题,很容易就复现了,但是发现在360浏览器兼容模式下无法打开开发者工具.好在经过反复重 ...
- IE浏览器下ajax和缓存的那些事儿
项目经理最近返回了一些问题: (客户浏览器为IE11,本地360,谷歌没发现任何问题) 1.加载页面时下拉框中没有数据,关闭之后再打开出现数据: 2.数据保存之后页面没有刷新: 我也是接手别人的项目, ...
- jQuery源码解读 - 数据缓存系统:jQuery.data
jQuery在1.2后引入jQuery.data(数据缓存系统),主要的作用是让一组自定义的数据可以DOM元素相关联——浅显的说:就是让一个对象和一组数据一对一的关联. 一组和Element相关的数据 ...
- jQuery1.9.1源码分析--数据缓存Data模块
jQuery1.9.1源码分析--数据缓存Data模块 阅读目录 jQuery API中Data的基本使用方法介绍 jQuery.acceptData(elem)源码分析 jQuery.data(el ...
- ecshop二次开发系统缓存优化之扩展数据缓存的必要性与方法
1.扩展数据缓存的必要性 大家都知道ecshop系统使用的是静态模板缓存,在后台可以设置静态模板的缓存时间,只要缓存不过期,用户访问页面就相当于访问静态页面,速度可想而知,看似非常完美,但是ecsho ...
- Redis数据缓存淘汰策略【FIFO 、LRU、LFU】
FIFO.LFU.LRU FIFO:先进先出算法 FIFO(First in First out),先进先出.在FIFO Cache设计中,核心原则就是:如果一个数据最先进入缓存中,则应该最早淘汰掉. ...
- IE浏览器下ajax缓存导致数据不更新的解决方法
摘自:http://www.iefans.net/ie-ajax-json-shuju-huancun/ 最近做设计的时候遇到一个小问题,当你用jquery的getjson函数从后台获取数据的时候,I ...
随机推荐
- pycharm远程上传文件到Linux
配置远程SFTP 1. 在PyCharm中打开SFTP配置面板,路径为Tools => Deployment => Configuration: 2. 配置Connection参数设置,填 ...
- struts2截取字符串
<struts:if test="null!=pushAd&&pushAd.length()>14"> <struts:property v ...
- 6. ZigZag Conversion
题目: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows l ...
- Office文件的Open Xml 格式
获取Office文件的Open Xml格式文件的步骤如下: 1.修改想要得到OpenXml格式文件的文件后缀名为.rar. 2.解压即可得到. 此时可以对xml文件进行操作,要想再次把这已经解压后的文 ...
- 阻塞队列BlockingQueue 学习
import java.util.Random; import java.util.concurrent.BlockingQueue; import java.util.concurrent.Time ...
- NYOJ之Fibonacci数
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAskAAAJwCAIAAAD0kmsHAAAgAElEQVR4nO3dvXLbOMM24O8k3PtA3E
- PHP超全局变量
PHP提供了九种超全局变量(数组) 1 $_GET //地址栏上获得的值 2 $_POST //POST表单发送的数据 3 $_REQUEST //GET和POST的内容全都有 4 $_SERVER ...
- Jquery.Datatables dom表格定位
Datatables会添加一些控制元素在表格的周围,比如默认状态下改变每页显示条数(l)的空间在左上角,即使搜索框(f)在右上角,表格的信息(i)显示在左下角,分页控件(p)显示在右下角. 这些控件在 ...
- WebService - 怎样提高WebService性能 大数据量网络传输处理
直接返回DataSet对象 返回DataSet对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用 ...
- 【131031】struts 1 中 <html:form>
<DIV>来看看 使用 ActionForm 这个主题,当时使用了一个静态表单网页:<BR>* form.htm<BR><BR><BR>&l ...