EasyUI中datagrid在ie下reload失败解决方案

问题

最近使用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自己加随机数好用,原谅我代码洁癖不想改服务端接口 _(:з」∠)_。

转载—————http://www.jb51.net/article/61895.htm

时间: 2024-10-09 05:52:44

EasyUI中datagrid在ie下reload失败解决方案的相关文章

EasyUI datagrid在ie下reload失败的问题

EasyUI datagrid在ie下reload失败的问题 问题 最近使用EasyUI开发后台系统,测试时发现个奇葩的问题,$('dg').datagrid('reload'); 重新加载表格数据时,ie下一点反应都没有.后来发现其实并不是没有反应,而是浏览器使用了缓存. 解决方案 网上网友总结出来的解决方案有以下几种: 在url后加时间戳,使第一次加载和reload中访问的url不一致,使系统无法使用IE缓存.通过测试发现,EasyUI请求时后面已经自带一串随机数_145232xxx,但是i

利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能

我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序 HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据,难免会含有方便操作的 主键ID这列的记录.现在项目需要在easyUI的DataGrid中显示的数据能全部导出Excel,包括DataGrid中的中文标题,其他的统统不 要. 完成该功能所需的工具和环境:Newtonsoft.Json序列化和反序列化类库.easyUI前端UI框架.HttpHandl

EasyUI中datagrid实现显示、增加、 删除、 修改、 查询操作(后台代码C#)

2datagrid加载数据.代码如下所示 一.数据的显示 1新建HtmlPage2.html页面,引入相关文件.如下所示 <script src="easyui/js/jquery-1.8.2.min.js"></script>  <script src="easyui/js/jquery.easyui.min.js"></script>  <link href="easyui/css/themes/d

SpringMVC+easyUI中datagrid分页实现_2014.5.1

一.概述 SpringMVC: 1.是面对方法级变量的,在操作起来会比struts方便一些(structs是类级变量),具体体现在了srpingMVC的注解上面, 如@RequstMapping("/login"),而且对于返回值ModelAndView这也是一大亮点,既可以返回一个页面(View),再加上@ResponseBody注解以后就可以返回一个      模型对象(也就是一种数据结构). 2.对于方法级传入的参数操作起来也相当方便,比如本例中,在加载DataGrid时,会像后

EasyUI 中 DataGrid 控件 列 如何绑定对象中的属性

EasyUI 中 DataGrid 控件 是我们经常用到的控件之一, 但是 DataGrid 控件 在绑定显示列时却不支持对象属性绑定. 模型如下: public class Manager implements java.io.Serializable { private Integer id; private Role role; private String loginName; private String password; private int status; private Da

SpringMVC+easyUI中datagrid行编辑模式(添加数据)实现_2014.5.2

一.概述 根据我们平常的习惯,一共有两种修改模式,一种是弹窗是修改,将原有的数据提取到dialog上,然后再重新提交到后台(好像easyui里面有个onAfterEdit,这个事件里面有三个参数,其中的一个参数就是发现数据是否有改变),而第二种方式就是实现行编辑模式,在原有的datagrid上添加一个空行,(本例是实现添加数据,不考虑原有数据). 二.实现 1.后台就不赘言了.直接上代码,但是我还是有个疑问,对于SpingMVC的Controller层次中的方法的**入参**,我在前台通过aja

easyui 中Datagrid 控件在列较多且无数据时,列显示不全的解决方案

在onLoadSuccess 中加入如下代码就OK啦 $('#dg3').datagrid({ onLoadSuccess:function(data){ if(data.total==0){ var dc = $(this).data('datagrid').dc; var header2Row = dc.header2.find('tr.datagrid-header-row'); dc.body2.find('table').append(header2Row.clone().css({"

EasyUI的DataGrid 分页栏英文改中文解决方案

(一)分页栏英文改中文解决方案 这个问题其实很简单,就是引入文件jquery-easyui-1.3/locale/easyui-lang-zh_CN.js . 注意这个文件要放在本页js的后面,放在最后也不会有什么影响的. 其实日期控件引入这个文件也可以把英文变为中文. 还有一种比较笨的解决办法 ,如下: 1 //设置分页控件 2 var p = $('#list_data').datagrid('getPager'); 3 $(p).pagination({ 4 pageSize: 10,//

EasyUI:DataGrid在IE下的性能问题

现象:EasyUI的DataGrid组件在IE下性能比较差,如加载1000条数据就耗时10几秒,加载10000条数据就可能让浏览器崩溃,归咎原因,是DataGrid主要使用了jQuery的html()方法进行渲染,而这个方法却存在一定的性能缺陷,下面就html()和innerHTML的优缺点做一下分析: innerHTML属性的优点 innerHTML是w3c制定的行业标准,几乎所有浏览器都做了支持: 作为原生支持,innerHTML在各主流浏览器下的执行效率是很高的: innerHTML属性的