gpt4 book ai didi

ajax - Grails Controller 能否在操作完成之前动态返回对 View 的更新?

转载 作者:行者123 更新时间:2023-12-02 02:17:53 26 4
gpt4 key购买 nike

现状

我正在执行一个外部应用程序(通过使用 Runtime.getRuntime().exec... example here )并且我正在监听应用程序将 stdout 写入的 Stream。该部分按预期工作并且我得到了结果(在 grails Controller 中),逐行,因为它们可用,并且 - 当流没有更多内容时 - 我在页面上呈现结果.

另一方面是从 gsp 页面异步启动该应用程序。这也已经涵盖并进行了 remoteFunction 调用(对上述 Controller 方法),收集并返回结果,并将它们正确显示在页面上的指定区域。


但是,困扰我和我真正想要实现的是:

目标

在读取时显示从流中读取的行,而不是在整个流完成之后(就像现在完成的那样)。

这意味着(例如,类似于)为流读取循环中的每一行调用渲染:

while ((line = bri.readLine()) != null) {
System.out.println(line);
//render line here?
}

这能实现吗?

请解释:)

最佳答案

我认为没有标准的 Grails 方法可以实现您想要的行为。

g:remoteFunction它仍然是一个为您包装 AJAX 请求的标签。请求受请求响应模式的限制——您不能为一个请求获得多个响应。您的操作代码不会自动修改。

您必须自己实现。

我会尝试以下方法:

  • 将单个 remoteFunction 调用拆分为多个 AJAX 请求
  • 第一个请求会初始化一个新线程,它会监听您的外部应用程序。
  • 此应用程序的结果必须存储在 session 范围,以便...
  • 来自客户端的以下定期请求可以轮询当前的执行状态。

关于ajax - Grails Controller 能否在操作完成之前动态返回对 View 的更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9634734/

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