在GWT中显示微调器

问题描述:

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

我正在使用滑块来修改svg图像。我调用这个函数,当MouseUp事件被触发时,这个函数使得计算修改svg图像。现在,由于图像是由许多svg路径组成的,所以需要一段时间(大约1s)直到svg图像更新;这里是我想要展示微调器的地方,让用户知道应用程序正在处理数据。顺便说一句,当我说“更新svg图像”时,我实际上删除了当前的svg路径,并为DOM添加了新的路径。

我创建了一个小部件来显示微调,它扩展了类​​。我读过这个来处理一个小部件,它必须先被添加到DOM中,所以我在View的构造函数(我使用MVP)中创建并隐藏了这个小部件,所以当应用程序正在处理时,我只需要调用show()函数。

是否有可能实现我想要的?

如果你可以将你的1s处理分成20个0.05s的工作,那么你绝对可以做到这一点。算法!

1:显示你的甩干过程图形在一个弹出

2:使用Scheduler.scheduleDeferred安排工作

3的第一个/下一个0.05秒:在延迟代码的末尾,则转到步骤2并安排下一部分工作

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

通过调度小块的工作,你给浏览器有机会做其他任务 - 动画微调,接收输入等。如果你只是做一个大循环,需要1秒来执行,没有那些其他的事情可能会在此期间发生。