gpt4 book ai didi

java - GWT自动刷新代码跳转至首页

转载 作者:行者123 更新时间:2023-12-02 06:32:09 25 4
gpt4 key购买 nike

我们想要自动刷新使用 GWT 2 构建的页面。我们使用了很多解决方案来做到这一点:

GWT auto refresh

automatic refresh of GWT screen

但是它们都不能正常工作。问题有点复杂:

自动刷新在名为“Kazalar”的主页/选项卡中运行:

http://dl.dropbox.com/u/103580364/temp/000766.jpg

但是如果用户位于另一个选项卡中,则自动刷新后浏览器会跳转到主页/选项卡:

http://dl.dropbox.com/u/103580364/temp/000767.jpg

上面question's answer ,回答者says我们应该用重新创建该部分 View 的代码替换 reloadAll() 函数(如果需要,使用一些 Ajax 调用从服务器重新获取数据)。我们无法测试此部件,因为我们不知道如何编写重新创建特定部件 View 的代码。有人可以举个例子来说明如何做到这一点吗?

public class TimerExample implements EntryPoint, ClickListener {

public void onModuleLoad() {
Button b = new Button("Click and wait 5 minutes");
b.addClickListener(this);

RootPanel.get().add(b);
}

public void onClick(Widget sender) {
Timer t = new Timer
public void run() {
reloadAll();
}
};

// Schedule the timer to run once in 5 minutes.
t.schedule(5*1000*60);
}

private void reloadAll() {
Window.Location.reload();
}
}

最佳答案

使用计时器就可以了。

假设您了解 GWT activities and places 。严厉的方法是使用重新加载完整模块

Window.Location.replace("url#kalazar:");

你已经提到过;但一个更好的方法(假设您正在实现 MVP 模式)是在 Kalazar View 的呈现器上创建一个刷新方法。这样您就不需要重新加载页面。

  private void reloadAll() {
myKalazarPresenter.refresh();
}

private void myKalazarPresenter() {
myKalazarView.clear();
myKalazerView.reInit(kalazarInitializationData);
}

既然您说无法重新初始化 View ,也许您可​​以尝试删除并重新创建它?

关于java - GWT自动刷新代码跳转至首页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19974558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com