暂停/停止GWT执行

时间:2013-02-08 15:30:12

标签: java gwt

在我们的GWT Web应用程序中,我们达到了一个状态,我们想要删除所有内容,并且只显示应用程序已停止的大量警告。

我们无法找到办法。我们基本上需要的是:

  • 强制GWT停止所有处理并中止任何现有的RPC消息
  • 强制所有已注册的事件变为非活动状态
  • 清除页面中的所有可见内容
  • 设置单个段落/文字

简而言之,我们想要杀死整个DOM并只添加一个段落。

我们尝试了很多不同的

组合
RootPanel.get().clear()

但发现没有可靠的方法去做我们想要实现的目标。任何想法如何做到这一点?

3 个答案:

答案 0 :(得分:1)

首先,您必须接受服务器活动。这是一个很好的做法,使您的应用程序健壮。 为了使其统一,您可能希望对服务实现的任何请求作出适当的例外响应。例如,如果在删除用户访问应用程序的权限时会发生这种情况,那么除了为relogin或其他已批准的操作所做的请求之外,它应该为所有请求抛出某种安全例外。

您可以在每种服务方法中手动执行此操作,也可以使用过滤器来处理该操作。 Spring Security等框架提供了一种配置安全过滤器的简便方法。

完成服务器端并确认UI无法穿透服务器的安全层后,您可以对UI进行更改。有不同的方法可以制作漂亮的阻挡屏幕。

通常,我在代码中执行以下操作来创建内容,并且可以使用clear()方法从视口中删除视口或内容。无需刷新或重新验证。

    Viewport viewport = new Viewport();
    viewport.setLayout(new FitLayout());
    viewport.add(new MainPanel());
    RootPanel.get().add(viewport);

不确定您的布局如何。如果您能够为您的场景提供代码示例,我可以向您展示如何执行您需要的操作。因为在我的例子中它运作得很好。

答案 1 :(得分:1)

Window.Location.replace("URL-OF-A-STATIC-HTML") 

Javadoc:

  

用新的URL替换当前的URL。所有GWT状态都将丢失。   在浏览器的历史记录中,当前URL将被新的替换   URL。

如果您想重新激活GWT应用,请在该HTML页面上添加一个链接。

答案 2 :(得分:0)

在cookie中存储信息或说出标记,当您加载应用程序时,请查看该cookie是否已设置,是否已设置显示消息或加载应用程序。现在,只要您想完全停止应用程序,请设置cookie并重新加载应用程序。