jQuery MiniUI

 找回密码
 立即注册
查看: 2987|回复: 5
打印 上一主题 下一主题

renender里使用同步ajax回调函数不执行 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2019-11-27 16:44:17 |只看该作者 |倒序浏览
在datagrid的列里面用了renender里面,使用了同步ajax去请求数据,但是回调函数不执行,每次只执行了几行,后面就不执行了,通过控制台打印,发现每行遇到那个字段都执行了reneder函数,但是同步请求ajax只执行了前几次,后面就等不到回调函数执行了

跪求解决办法

Rank: 3Rank: 3

沙发
发表于 2019-11-27 16:47:24 |只看该作者
本帖最后由 helius 于 2019-11-27 16:50 编辑

使用drawcell事件测试后,也是如此
  1.                      <div field="sendDistributionId" width="120" headerAlign="center" align="center"
  2.                                          headerCls="table-header" renderer="getName()">
  3. 这里查出id要显示成name
  4.                                     </div>
复制代码
  1. getName = function (e) {
  2.         var dictName;
  3. $.ajax({
  4.                     type: 'GET',
  5.                     url: "/basicDict/getDictById?dictId=" + e.value,
  6.                     data: null,
  7.                     async :false,
  8.                     success: function (data) {
  9.                         dictName = data.dictName;
  10.                     }
  11.                 });
  12.         return dictName;
  13.     }
复制代码


Rank: 8Rank: 8

板凳
发表于 2019-11-27 17:02:39 |只看该作者
helius 发表于 2019-11-27 16:47
使用drawcell事件测试后,也是如此

不建议在renderer里面跑ajax,这个处理每行都会触发,你会跑很多ajax

建议跑一次ajax把数据保存在前端,renderer的时候根据已有数据翻译就可以了。

Rank: 3Rank: 3

地板
发表于 2019-11-27 17:18:28 |只看该作者
dforce 发表于 2019-11-27 17:02
不建议在renderer里面跑ajax,这个处理每行都会触发,你会跑很多ajax

建议跑一次ajax把数据保存在前端, ...

刚经过测试,ajax回调函数每次函数都执行了,但是return时只拿到了前几次的值,后面的行都没有拿到

Rank: 8Rank: 8

5#
发表于 2019-11-28 09:28:21 |只看该作者
helius 发表于 2019-11-27 17:18
刚经过测试,ajax回调函数每次函数都执行了,但是return时只拿到了前几次的值,后面的行都没有拿到 ...

首先这样的做法是很没有效率的,我们不建议这么做。
其次本地测试没有问题,是每次都能获取到交互的数据的。

Rank: 3Rank: 3

6#
发表于 2019-11-30 12:14:11 |只看该作者
dforce 发表于 2019-11-28 09:28
首先这样的做法是很没有效率的,我们不建议这么做。
其次本地测试没有问题,是每次都能获取到交互的数据 ...

是我们的问题,因为短时间内会造成大量请求,做了请求拦截器。

Archiver|普加软件

GMT+8, 2024-11-30 17:39 , Processed in 1.059135 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部