我想知道在应用程序进行一些计算时是否有可能显示一个微调器。
我正在使用滑块来修改svg图像。我调用函数,该函数在触发MouseUp事件时进行计算以修改svg图像。现在,由于图像是由许多svg路径组成的,因此需要一段时间(大约1秒)才能更新svg图像;这里是我想要显示微调器的地方,让用户知道应用程序正在处理数据。顺便说一句,当我说“更新svg图像”时,我实际上正在删除当前的svg路径并创建/添加到DOM的新路径。
我创建了一个小部件来显示微调器,它扩展了类PopupPanel
。我读到要处理一个小部件,它必须首先添加到DOM,所以我在View的构造函数中创建并隐藏该小部件(我正在使用MVP),所以当应用程序处理时我只需要调用函数show()。
有可能实现我想要的目标吗?
答案 0 :(得分:2)
如果你可以将你的1个加工组合成20个0.05s的工作,那么你绝对可以做到这一点。算法!
1:在弹出窗口中显示旋转进度图形
2:使用Scheduler.scheduleDeferred
安排第一个/下一个0.05的工作
3:在延期代码的最后,转到第2步并安排下一部分工作
4:完成所有工作后,隐藏旋转进度图形!
通过以小块的形式安排工作,你可以让浏览器有机会完成其他任务 - 为微调器设置动画,接收输入等等。如果你只是制作一个需要1秒执行的大循环,那么其他任何东西都没有在此期间可能会发生。