Java GWT中调度器和计时器的区别是什么?

Java GWT中调度器和计时器的区别是什么?,java,javascript,html,gwt,Java,Javascript,Html,Gwt,以下命令之间有什么区别: A: B: 使用该类计划将来要完成的工作 使用for将某些逻辑推迟到最近的将来 说: 如果您使用计时器计划UI动画,请改用AnimationScheduler。浏览器可以优化动画以获得最佳性能 有关详细说明,请参阅 GWT提供了三个类,您可以使用它们将运行的代码推迟到稍后的时间点: Timer DeferredCommand IncrementalCommand 请查看以下帖子: 对于您的特定呼叫(定时器#时间表(1))没有功能上的差异。两种方式都会以1毫

以下命令之间有什么区别:

A:

B:

使用该类计划将来要完成的工作

使用for
将某些逻辑推迟到最近的将来


说:

如果您使用计时器计划UI动画,请改用
AnimationScheduler
。浏览器可以优化动画以获得最佳性能


有关详细说明,请参阅

GWT提供了三个类,您可以使用它们将运行的代码推迟到稍后的时间点:

Timer
DeferredCommand
IncrementalCommand

请查看以下帖子:


对于您的特定呼叫(
定时器#时间表(1)
)没有功能上的差异。两种方式都会以1毫秒的延迟结束呼叫。然而,定时器和调度器提供的服务有区别:定时器是可取消的,而调度命令不是;调度器更有利于单元测试。看

一旦通过调度程序进行调度,命令在执行之前就不能取消。您也不能删除它。 它将坐在那里并保留所有资源,直到调度程序执行并自动删除它为止

如果按照Braj的建议使用调度器将逻辑延迟到最近的将来,这可能不是问题。 但是,如果您这样做,可能会有问题:

Scheduler.get().scheduleFixedPeriod(
    myCommandUsingLotsOfResources, 
    SOME_QUITE_LONG_INTERVAL);
一个计时器,你可以取消并立即扔掉

Timer
DeferredCommand
IncrementalCommand
Scheduler.get().scheduleFixedPeriod(
    myCommandUsingLotsOfResources, 
    SOME_QUITE_LONG_INTERVAL);