Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 暂停/停止执行GWT_Java_Gwt - Fatal编程技术网

Java 暂停/停止执行GWT

Java 暂停/停止执行GWT,java,gwt,Java,Gwt,在我们的GWT web应用程序中,我们达到了一种状态,希望删除所有内容,并显示一个大的胖警告,表示应用程序已停止 我们无法找到一种方法来做到这一点。我们基本上需要的是: 强制GWT停止所有处理并中止任何现有RPC消息 强制所有已注册事件变为非活动状态 清除页面中的所有可见内容 设置单个段落/文本 简言之,我们希望删除整个DOM,只向其中添加一个段落 我们尝试了许多不同的组合 RootPanel.get().clear() 但是,我们没有找到可靠的方法来实现我们想要实现的目标。你知道怎么做吗

在我们的GWT web应用程序中,我们达到了一种状态,希望删除所有内容,并显示一个大的胖警告,表示应用程序已停止

我们无法找到一种方法来做到这一点。我们基本上需要的是:

  • 强制GWT停止所有处理并中止任何现有RPC消息
  • 强制所有已注册事件变为非活动状态
  • 清除页面中的所有可见内容
  • 设置单个段落/文本
简言之,我们希望删除整个DOM,只向其中添加一个段落

我们尝试了许多不同的组合

RootPanel.get().clear()

但是,我们没有找到可靠的方法来实现我们想要实现的目标。你知道怎么做吗?

在cookies中存储信息或说标志,当你加载应用程序时,查看cookie是否已设置,如果已设置,则显示消息或加载应用程序。现在,每当您想要完全停止应用程序时,设置cookie并重新加载应用程序

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

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

在完成服务器端的操作并确认UI无法穿透服务器的安全层后,可以对UI进行更改。有不同的方法来制作一个好看的块屏

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

    Viewport viewport = new Viewport();
    viewport.setLayout(new FitLayout());
    viewport.add(new MainPanel());
    RootPanel.get().add(viewport);
不知道你的布局如何。如果您能够为您的场景提供一个代码示例,我可以向您展示如何做您需要的事情。因为在我的例子中,它工作得很好

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

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


如果要重新激活GWT应用程序,请在该HTML页面上放置一个链接。

RootPanel.get().clear();RootPanel.get().add(warningMessageWidget);虽然(正确)
while(true)
将锁定整个浏览器线程,直到浏览器决定关闭应用程序。在某些浏览器中,这将停止所有选项卡,而不仅仅是应用程序正在运行的选项卡。使用新内容重新加载页面?RootPanel.get().getElement().setInnerHTML(“”;?我尝试了RootPanel.get()的所有组合。。。setInnerHtml、clear等等。它们都不起作用。事件处理似乎在继续向页面添加内容。抱歉,您误解了我的问题。我不是问如何知道我的应用程序应该停止。我只是在寻找一种GWT方式来表示退出(0)…我认为我遇到的主要问题是,我需要停止事件处理,以便在清除所有内容后不会添加新内容…停止事件处理从来都不是一个优雅的解决方案。您应该做的是忽略应用程序处于这种状态的事件。或者,您可以断开数据模型与向其提供新事件/数据的任何对象的连接。这正是我目前所采用的方法。我期待着某种错误页面。但是,这只有在我仍然有服务器连接的情况下才可能实现。如果服务器关闭,并且我的GWT应用程序注意到了这一点并想通知用户,那么就没有机会将用户转发到静态页面,而静态页面必须从服务器检索。好的,我明白你的意思了。。。静态HTML的URL可能无法访问了?也许你可以在启动时离线缓存它,如果你的客户端浏览器支持的话,可以使用HTML5和清单文件;