gpt4 book ai didi

java - 我怎样才能用 Play Framework 写一个加载页面

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:38 24 4
gpt4 key购买 nike

我想实现一个在系统命令运行时向用户显示的页面。一旦命令完成,用户应该被路由到另一个页面。

有哪些实现策略?

(没有 javascript 的解决方案是理想的)

最佳答案

绝对可以做到。你想看Asynchronous programming with HTTP在文档中,它解释了如何以非阻塞方式执行此操作。不过,您将需要一些 javascript 用于重定向部分。

而且我不知道您所说的“系统命令”是什么意思,但您可能想要 create a job为此,您可以通过请求触发它。然后你可以 poll it直到它完成,然后重定向用户。但实际上文档在解释方面比我现在所做的要好得多。

这是一个 Controller 操作示例,我假设您的系统命令为用户返回某种字符串输出。当作业完成时,它会向用户发送响应,从而触发 javascript 示例中的成功处理程序。

public static void executeSystemCommand(String input) {
Promise<String> outputPromise = new SystemCommandJob(input).now();
String output = await(outputPromise);
renderText(output);
}

基本上,如果您使用的是 jQuery 的 $.ajax,您可以使用 complete 事件来轮询数据(如果没有成功,只需再次请求超时时间)并使用成功/完成事件在应用程序响应指示“系统命令”已完成运行时重定向用户。

您可以使用的函数示例:

function poll(){
$.ajax({
url: "/systemcommand",
success: function(data){
// redirect to next page here
document.location.href = '/output'
},
complete: poll,
timeout: 20000
});
};

还有a great example on long polling在 StackOverflow 上的 javascript 中。

关于java - 我怎样才能用 Play Framework 写一个加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9702797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com