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

至于为何要进easyui这个坑,就很少说了。ajax

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

 

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

  IE的请求第一次成功是200,第二次若是url没有更改的话,因为缓存机制,请求会变成304。post

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

  网上有一种方法说把get请求改为post请求,这样是很差的,http协议既然分了get、post天然是有区别的。不能何时都用post来解决这个问题。ui

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

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

  

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

  

相关文章
相关标签/搜索