Java GWT自动刷新代码跳转到主页
我们希望自动刷新使用GWT2构建的页面。我们使用了很多解决方案: 但两者都不能正常工作。问题有点复杂: 自动刷新在名为“Kazalar”的主页/选项卡中工作: 但是,如果用户在另一个选项卡中,则在自动刷新后,浏览器会跳转到主页/选项卡: 在上面的例子中,答案是我们应该用代码替换reloadAll()函数,重新创建该部分的视图(如果需要的话,使用一些Ajax调用从服务器重新获取数据)。我们无法测试此部件,因为我们不知道如何编写代码来重新创建特定部件的视图。有人能举例说明怎么做吗Java GWT自动刷新代码跳转到主页,java,javascript,gwt,Java,Javascript,Gwt,我们希望自动刷新使用GWT2构建的页面。我们使用了很多解决方案: 但两者都不能正常工作。问题有点复杂: 自动刷新在名为“Kazalar”的主页/选项卡中工作: 但是,如果用户在另一个选项卡中,则在自动刷新后,浏览器会跳转到主页/选项卡: 在上面的例子中,答案是我们应该用代码替换reloadAll()函数,重新创建该部分的视图(如果需要的话,使用一些Ajax调用从服务器重新获取数据)。我们无法测试此部件,因为我们不知道如何编写代码来重新创建特定部件的视图。有人能举例说明怎么做吗 publi
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();
}
}
使用计时器是可以的
假设你知道。
严酷的方法是使用
Window.Location.replace("url#kalazar:");
你已经提到了;但是一个更好的方法(假设您正在实现MVP模式)是在Kalazar视图的演示者上创建一个刷新方法。这样您就不需要重新加载页面
private void reloadAll() {
myKalazarPresenter.refresh();
}
private void myKalazarPresenter() {
myKalazarView.clear();
myKalazerView.reInit(kalazarInitializationData);
}
既然你说你不能重新创建视图,也许你可以试着删除并重新创建它?当显示“Kazalar”位置时,你启动这个计时器,当调用
timer.run()
时,你调用第一次加载该选项卡时用来填充数据的方法。我建议不要创建位置。reload()。只需在计时器中重新加载显示的数据。