为什么控制繁忙指示器不起作用

3

我的目的是在向oModel create函数发送数据时,显示控件繁忙指示器。但是我无法看到它,可能是由于oModel同步问题。它应该在调用oModel之前出现,并在fnSuccess函数工作时消失。我尝试使用同步create函数:

var fnSuccess = function(oData, oResponse) {
    oVbox.setBusy(false);
};
oVbox.setBusy(true);
oModel.create("sPath", serviceData, null, fnSuccess, fnError, true);

但我仍然看不到控件繁忙指示器。同样,我在繁忙指示器方面也有同样的问题。谢谢。
3个回答

2

尝试使用 oVbox.setBusyIndicatorDelay(0); 然后调用 oVBox.setbusy(true);

如果这不起作用,尝试在 setBusy 和调用 create 方法之间添加一个小延迟(使用 setTimeout)。


谢谢,我稍微改了一下代码,但我会尝试,我猜setTimeout会起作用。 - melomg

1

它不一定会总是出现,基本上取决于您代码的执行时间。


但是发送数据和接收参数需要很长时间,我猜应该会出现这种情况。 - melomg
如果你的代码运行顺畅,那么为什么要用到这个呢?这通常用于需要大量处理时间的代码(在JavaScript中只有一个线程),但在你的情况下,它运行良好。 - Aryan
但是我需要展示这个繁忙指示器给我的客户,因为他们必须看到这个才知道进程正在后台运行。我的代码需要很长时间,而我的客户需要看到这个指示器。 - melomg

1

为了更好地理解问题,您可以在成功函数中将.setBusy的值设置为true。

这将有助于诊断问题,因为它可能与加载速度有关。

例如:

var fnSuccess = function(oData, oResponse) {
    oVbox.setBusy(true);
};

是的 @Bernard,我能够进行设置,并且在设置后可以看到控件繁忙指示器。 - melomg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接