在GWT中前进时显示微调器

在GWT中前进时显示微调器,gwt,mouseevent,spinner,Gwt,Mouseevent,Spinner,我想知道在应用程序进行一些计算时是否可以显示微调器 我正在使用一个滑动条修改svg图像。当MouseUp事件被触发时,我调用该函数进行计算以修改svg图像。现在,由于图像由许多svg路径组成,因此需要一段时间(大约1s)才能更新svg图像;这里我想展示微调器,让用户知道应用程序正在处理数据。顺便说一句,当我说“更新svg图像”时,我实际上是在删除当前的svg路径,并创建/添加新的DOM路径 我创建了一个小部件来显示微调器,它扩展了类popupanel。我了解到要处理小部件,必须首先将其添加到DO

我想知道在应用程序进行一些计算时是否可以显示微调器

我正在使用一个滑动条修改svg图像。当MouseUp事件被触发时,我调用该函数进行计算以修改svg图像。现在,由于图像由许多svg路径组成,因此需要一段时间(大约1s)才能更新svg图像;这里我想展示微调器,让用户知道应用程序正在处理数据。顺便说一句,当我说“更新svg图像”时,我实际上是在删除当前的svg路径,并创建/添加新的DOM路径

我创建了一个小部件来显示微调器,它扩展了类
popupanel
。我了解到要处理小部件,必须首先将其添加到DOM中,因此我正在视图的构造函数中创建并隐藏该小部件(我使用的是MVP),因此当应用程序正在处理时,我只需要调用函数show()


有可能实现我想要的吗?

如果你能将你的1次处理分成20个0.05秒的工作,那么你绝对可以实现这一点。算法

1:在弹出窗口中显示旋转进度图形

2:使用scheduleDeferred.scheduleDeferred来计划第一个/下一个0.05秒的工作

3:在延迟代码的末尾,转到步骤2并安排下一个工作块

4:完成所有工作后,隐藏旋转进度图形

通过将工作安排成小块,您可以给浏览器一个执行其他任务的机会—设置微调器动画、接收输入等。如果您只是执行一个大循环,需要1s才能执行,那么其他任何事情都不可能同时发生