Java 播放框架-X秒后处理/重定向时渲染视图

Java 播放框架-X秒后处理/重定向时渲染视图,java,asynchronous,playframework,routes,playframework-2.0,Java,Asynchronous,Playframework,Routes,Playframework 2.0,注意:我是新来玩框架的 为了我的游戏!项目中,我需要某种形式的异步编程。简单地说,我需要显示一个视图,同时在后台进行处理,然后重定向或呈现一个新表单 这一问题一直没有得到答复。我查看了播放文档页面,没有找到任何解决方案 我尝试过的: 我试图修改播放启动器示例中给出的异步控制器。但是,当导航到http://localhost/message,该功能似乎更像是一个睡眠,而不是一个被设置和“遗忘”的预定任务,即可以继续进行进一步的编码 AsynchController代码段:具有自己的修改 publi

注意:我是新来玩框架的

为了我的游戏!项目中,我需要某种形式的异步编程。简单地说,我需要显示一个视图,同时在后台进行处理,然后重定向或呈现一个新表单

这一问题一直没有得到答复。我查看了播放文档页面,没有找到任何解决方案

我尝试过的:

我试图修改
播放启动器示例中给出的
异步控制器
。但是,当导航到
http://localhost/message
,该功能似乎更像是一个睡眠,而不是一个被设置和“遗忘”的预定任务,即可以继续进行进一步的编码

AsynchController代码段:具有自己的修改

public CompletionStage<Result> message() {
        return getFutureMessage(5, TimeUnit.SECONDS).thenApplyAsync(s -> ok(views.html.User.Account.verified.render()), exec);
    }

    private CompletionStage<String> getFutureMessage(long time, TimeUnit timeUnit) {
        CompletableFuture<String> future = new CompletableFuture<>();
        actorSystem.scheduler().scheduleOnce(
            Duration.create(time, timeUnit),
            () -> future.complete("Waiting 5 seconds..."),
            exec
        );
        return future;
    }
目的:

我的目标是让消息
等待5秒…
显示,然后延迟+/-5秒。此后,它将到达“未来”(这是否正确?),从而呈现视图(或重定向到控制器),在这种情况下,
verified
页面(用于账户验证)


我的最初目标是否正确,我在哪里可以找到类似的好例子?

我有一个简单的解决方案,但你必须在路线中设置两个条目

第一个条目显示消息“waiting5seconds…”,同时向第二个条目发出AJAX调用。第二个条目的控制器进行5秒的计算/休眠,并返回所需的内容,这些内容将在第一个页面上由Javascript呈现

在第一个网页中,您可以放置以下内容:

  axios.get(second-url)
      .then(function (response) {
        document.getElementById(someplaceholder).innerHTML=response.data.
      })

您是否使用任何客户端逻辑来处理服务器响应?除非在客户端使用具有特定呈现逻辑的分块响应,否则我怀疑是否有任何解决方案可以在这种情况下返回多个响应way@cchantep你能从游戏框架的角度定义一下“客户端”是什么意思吗。什么是客户端,什么是“服务器端”(我假设服务器端功能正在执行控制器的代码,路由到控制器)客户端=浏览器中的任何内容(不特定于播放)是否可以扩展以供使用,例如,在存在多个子菜单和“占位符”的情况下编辑您的个人资料单击时,ia被子菜单的选项替换,如github的编辑配置文件页面所示?当然。然后,您可以让每个子菜单发出一个AJAX调用。但是在Github的例子中,看看url栏,每个子菜单似乎指向不同的url,所以它只是一个普通的http请求,而不是AJAX。
  axios.get(second-url)
      .then(function (response) {
        document.getElementById(someplaceholder).innerHTML=response.data.
      })