问题

最近使用EasyUI开发后台系统,测试时发现个奇葩的问题,$('dg').datagrid('reload'); 重新加载表格数据时,ie下一点反应都没有。后来发现其实并不是没有反应,而是浏览器使用了缓存。

解决方案

网上网友总结出来的解决方案有以下几种:

1.在url后加时间戳,使第一次加载和reload中访问的url不一致,使系统无法使用IE缓存。通过测试发现,EasyUI请求时后面已经自带一串随机数_145232xxx,但是ie还是会使用缓存。后来我在请求的js中为url加上rand=xxx(Math.rand()生成的随机数)就不会使用缓存了。(我测试了从ie8到ie11)

2.用类似于在<head>中加<meta>来清除缓存:

复制代码 代码如下:
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">

很不幸,跟很多网友一样,这个方法我也失败了。:(

3.将datagrid的load对应的method声明为‘POST',这个解决方法最快。但是有有几个问题:
•要是该服务端接口不支持POST方式就歇菜了。
•要是服务端接口自己能控制,这种为了前端妥协的方式,会导致接口一点也不RESTful!要知道RESTful接口对于查询的设计基本上都是GET方式的。

总结

所以说还是第一种方法,在url自己加随机数好用,原谅我代码洁癖不想改服务端接口 _(:з」∠)_。

标签:
EasyUI,ie,reload,失败

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com

评论“EasyUI中datagrid在ie下reload失败解决方案”

暂无“EasyUI中datagrid在ie下reload失败解决方案”评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?