Wicket 抽象AjaxTimerBehavior立即启动

Wicket 抽象AjaxTimerBehavior立即启动,wicket,wicket-1.5,Wicket,Wicket 1.5,我试图将AbstractAjaxTimerBehavior设置为在调用时立即启动,然后每X秒(比方说10秒)重复一次,但我找不到什么。 我想到了一种方法,将第一个间隔设置为1秒,然后在onTimer方法中,将每次间隔设置为所需的X秒 myBehavior = new AbstractAjaxTimerBehavior(Duration.seconds(1)) { private static final long serialVersionUID = 1L; @Overrid

我试图将AbstractAjaxTimerBehavior设置为在调用时立即启动,然后每X秒(比方说10秒)重复一次,但我找不到什么。 我想到了一种方法,将第一个间隔设置为1秒,然后在onTimer方法中,将每次间隔设置为所需的X秒

myBehavior = new AbstractAjaxTimerBehavior(Duration.seconds(1)) {

    private static final long serialVersionUID = 1L;

    @Override
    protected void onTimer(AjaxRequestTarget target) {
        this.setUpdateInterval(Duration.seconds(10));
        .
        .
        .
    }
}

有没有更好的方法可以做到这一点,而不必在onTimer中设置每次间隔?Thnx

这是我现在能想到的两种方法之一。另一种方法是在第一次调用时使用额外的行为。但是我不能完全确定您想要归档什么,因为第一个调用将在渲染之后立即发出。在大多数情况下,您应该能够在渲染时提供当前数据……我想要的是加载一个GMap对象,并立即添加一些标记,这些标记是我从DB加载的,带有它们的lat lng坐标。然后,在正常间隔(10秒)后,它们的位置将被更改并显示在地图上。如果您从模型中“拉”出值,而不是使用
onTimer()
方法将其推入模型中(我怀疑您正在这样做),您应该会得到正确的行为。是的。这是在将行为附加到所需组件之前加载所需内容的另一个“技巧”。因此,在某种程度上,我们在附加行为之前复制onTimer方法中的代码(如果我理解正确的话)。