首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT自动刷新代码跳转到主页

GWT自动刷新代码跳转到主页
EN

Stack Overflow用户
提问于 2013-11-14 17:58:21
回答 1查看 623关注 0票数 0

我们想要自动刷新使用GWT2构建的页面。我们使用了很多解决方案来实现:

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我们应该用重新创建该部分视图的代码替换reloadAll()函数(如果需要,使用一些Ajax调用从服务器重新获取数据)。我们无法测试此部件,因为我们不知道如何编写重新创建特定部件视图的代码。有没有人能举个例子说明如何做到这一点?

代码语言:javascript
复制
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();
  }
}
EN

回答 1

Stack Overflow用户

发布于 2013-11-14 20:12:08

使用计时器就可以了。

假设你知道GWT activities and places的事。最苛刻的方法是使用以下命令重新加载整个模块

代码语言:javascript
复制
Window.Location.replace("url#kalazar:");

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

代码语言:javascript
复制
  private void reloadAll() {
    myKalazarPresenter.refresh();
  }

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

既然你说你不能reInit视图,也许你可以试着删除并重新创建它?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19974558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档