jQuery MiniUI

标题: datagrid validate()校验时间太长导致页面无响应问题 [打印本页]

作者: justditZhang    时间: 2019-8-13 17:31:58     标题: datagrid validate()校验时间太长导致页面无响应问题

最近更新系统,客户反应有个 页面,在新增50条数据之后,点确定,半天没反应,需要等十几秒才弹出确定新增的窗口
[attach]12400[/attach]

[attach]12401[/attach]
客户说之前没录70条都没出现这样,而且最近这里的代码都基本没变动过,想问一下是什么原因,或者 有什么可以优化的

作者: dforce    时间: 2019-8-14 09:16:17

把这个表格的代码提供一下,主要是验证相关的,我们看一下
作者: justditZhang    时间: 2019-8-14 09:55:29

dforce 发表于 2019-8-14 09:16
把这个表格的代码提供一下,主要是验证相关的,我们看一下

[attach]12402[/attach][attach]12402[/attach]
源码在附件里面,包括js和html

作者: dforce    时间: 2019-8-14 10:45:29

justditZhang 发表于 2019-8-14 09:55
源码在附件里面,包括js和html

你这里的验证都要跑ajax,这个开销我们是不可估计的。
建议不要通过ajax验证,或者减少ajax交互的次数。
作者: justditZhang    时间: 2019-8-14 10:51:51

dforce 发表于 2019-8-14 10:45
你这里的验证都要跑ajax,这个开销我们是不可估计的。
建议不要通过ajax验证,或者减少ajax交互的次数。 ...

但是客户反应之前没有这个问题呢,现在才 会出现这种问题
作者: dforce    时间: 2019-8-14 11:20:23

justditZhang 发表于 2019-8-14 10:51
但是客户反应之前没有这个问题呢,现在才 会出现这种问题

首先你这方式是错误的。
ajax的处理时间和实际的网络情况,后台处理时间都有关系。
你这里每一行两次ajax,总共行数*2次的ajax,每个ajax稍微慢一点你这页面就是卡死。
请重新处理验证

作者: justditZhang    时间: 2019-8-14 12:23:59

dforce 发表于 2019-8-14 11:20
首先你这方式是错误的。
ajax的处理时间和实际的网络情况,后台处理时间都有关系。
你这里每一行两次ajax ...

把 valueDatagrid1.on("cellvalidation", function (e) 换成
valueDatagrid1.on("cellendedit", function (e)  有影响么
作者: dforce    时间: 2019-8-14 13:12:29

justditZhang 发表于 2019-8-14 12:23
把 valueDatagrid1.on("cellvalidation", function (e) 换成
valueDatagrid1.on("cellendedit", functio ...

cellendedit事件是单元格编辑结束事件,每次编辑结束都会触发的。
具体使用看你的需求了                                                                                                                                                                                                                                                                                                                                                              




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2