您的位置:首页 > Web前端 > JQuery

JQuery EasyUI 发送两次请求

2015-12-28 22:08 736 查看
开发环境:S2SH + JQuery EasyUI  1.3.2 

前一段发现了一个问题,每次点击左侧菜单打开右侧页面的时候,后台都会接收到两次请求,一开始以为是

ajax一次点击发送两次请求 或者是 按钮连击造成的问题,然后测试了一大圈有上网了搜了好多帖子后才发现想的

简单了。

自己查看之下发现左侧生成菜单是一组超链接,在无双击的情况下似乎并无可能会发送两次连接,

如下图:

至此本人暂时无可奈何了,直到之后有一天无意间发现后台显示信息正常,赶紧从SVN服务器上Down下代码

比对,才发现一次在修改界面中大意之下把

class="easyui-datagrid"

删除了,于是上网搜索资料,才发现原来是EasyUI解析的问题,因为html代码中利用class声明了datagrid,导致EasyUI解析class代码的时候先解析class声明中的datagrid,这样组件就请求了一次url;然后我又在加载的js的时候自动请求了一次url。这样就导致了重复发送了两次加载请求,解决的方法就是只用一种初始化方法来声明EasyUI组件以避免重复的提交请求。

第一种:删除Js中的数据加载请求,改为在jsp页面,修改后的代码如下:

<table id="tableDataGrid" <span style="font-size: 18px; white-space: pre;">class="easyui-datagrid"</span> fit="true" title="" style="width:auto;height:auto"
data-options="<span style="color:#ff0000;">url:'请求加载url'</span>,loadMsg:'正在加载列表,请稍等 ... ',iconCls: 'icon-edit',rownumbers:true,singleSelect: true,
method: 'get', pagination:true,pageList:[20,50,100],pageSize:20">
</table>

第二种:删除Jsp页面中的<table>的class声明(class="easyui-datagrid"),修改后的代码如下:

<table id="tableDataGrid" fit="true" title="" style="width:auto;height:auto"
data-options="loadMsg:'正在加载列表,请稍等 ... ',iconCls: 'icon-edit',rownumbers:true,singleSelect: true,
method: 'get', pagination:true,pageList:[20,50,100],pageSize:20">
</table>
参考:点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息