只是想了解忙指示符的用法是否替换超时/等待等等。
例如,在mainfunct()
1. busy.show();
2. callcustom(); --asynch function without callback this is calling xmlhttpRequest etc.
3. busy.hide();
4. callanothercustom(); -- asynch function without callback
现在问题是
只有在busy.hide()
完成时才会执行第4行
只有当第2行完成而没有忙碌时才会进行第3行(2,4)
将在mainfunct()
内调用,无需等待第2行
完整...
当调用busy.hide()
时,是否有任何计时器设置
保持到第2行结束然后隐藏并调用第4行。
答案 0 :(得分:0)
busyIndicator的show
和hide
功能仅控制何时显示指示符以及何时隐藏指示符。它们对您代码中发生的任何其他事情都没有任何影响。
换句话说,你的代码基本上是:
在你的customcode
中,你仍然可以确保callanothercustom
只有在完成时才会通过添加你自己的回调来调用...我认为这里面是AJAX,所以:{{3} }}
function callcustom() {
$.ajax({
url : 'example.com',
type: 'GET',
success : callanothercustom
})
}
然后在callanothercustom
你可以busy.hide
...
或任何其他业务逻辑组合 - 它实际上取决于代码中发生的事情。
答案 1 :(得分:0)
在我看来,使用忙碌指标的唯一主要用例是长时间运行同步任务阻止UI。比如说超过2秒钟。希望这些是很少的。
如果您有异步任务,则不会阻止UI并且用户可以进行交互。如果您依赖上面所示的后续步骤的结果,那么您必须有一个回调/承诺来触发后续步骤。如果您希望在异步任务完成之前阻止用户,则将其视为同步任务并显示忙碌。
请注意,繁忙指标的使用现在主要被视为反模式。它基本上对你的用户大喊“看看这个应用程序有多慢!”。有时您无法避免应用中的死时间,例如获取大量数据以生成视图,但有很多方法可以缓解这种情况。一个例子可能是 - 尽可能快地在视图上获取某些内容(<1秒),然后回填更大的数据。总是问问自己为什么你需要这个忙碌,我可以找到一种方法来避免它,但不要让用户想知道应用程序正在做什么。