走过的easyui的坑--datagrid的reload在IE下未刷新

至于为什么要进easyui这个坑,就不多说了。

我现在使用的是1.5这个版本,在用它做一个后台管理系统,项目做到一半,才想起记录这些坑。

1、对于datagrid在reload、load在IE下未刷新

  IE的请求第一次成功是200,第二次如果url没有更改的话,由于缓存机制,请求会变成304。

  因为easyui的不像jqgrid会发起请求时自带参数,也因为IE的缓存好心办坏事,不能说这个缓存机制好与不好。既然这样,那我们就要想办法解决。

  网上有一种方法说把get请求改成post请求,这样是不好的,http协议既然分了get、post自然是有区别的。不能什么时候都用post来解决这个问题。

  最有效的解决方案:加随机参数Math.random();

  打开easyui的js源码,找到$.fn.datagrid.defaults的ajax进行改写。如图所示为源码。

  走过的easyui的坑--datagrid的reload在IE下未刷新

  将$.ajax里的url改为opts.url+"?"+Math.random(),经测试,此种方法并不会影响datagrid在url上面接参数(是否有隐患还不清楚,尽量还是不要在url上?直接加参数。),不影响datagrid的一个queryParams传参。queryParams的参数会在随机参数后&方式接上。如图所视:

  走过的easyui的坑--datagrid的reload在IE下未刷新

上一篇:C++和C在linux下 和在windows下有什么区别?


下一篇:Demo 示例控制输入光标位置