我已经阅读了几次此页面,只是没有看到GWT Timer和Scheduler类之间的某些固有差异。我正在寻找以下各项的用例和适用性:
Timer
Scheduler
Timer::schedule
Timer::scheduleRepeating
Scheduler::scheduleDeferred
Scheduler::scheduleIncremental
IncrementalCommand
DeferredCommand
这些似乎或多或少都在做着相同的事情,感觉您可以使用所有这些东西实现相同的目标。这仅仅是GWT的一种方式,提供了多种完成同一件事的方式吗?如果没有,请帮助我了解何时何地适当使用它们。
如果需要浏览器完成当前正在执行的操作,然后再告诉它执行其他操作,请使用 Scheduler 。例如:
myDialogBox.show(); Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { myTextBox.setFocus(); } });
在此示例中,焦点不会在浏览器完成对话框的呈现之前设置,因此您告诉程序等待直到浏览器准备就绪。
如果希望在指定的时间段后执行某些操作,请使用 Timer 。例如:
notificationPanel.show(); Timer timer = new Timer() { @Override public void run() { notificationPanel.hide(); } }; timer.schedule(10000);
该代码将显示notificationPanel,然后在10秒后将其隐藏。