我正在执行一个外部应用程序(使用Runtime.getRuntime().exec
...示例here),我正在监听应用程序将stdout写入的流。
该部分按预期工作,我得到结果(在grails控制器中),逐行,因为它们可用,并且 - 当流没有更多内容时 - 我在页面上呈现结果
其他方面是从gsp页面异步启动该应用程序。这也已经被覆盖并且进行了remoteFunction调用(对于上面提到的控制器方法),结果被收集并返回,并且它们被正确地显示在页面上的指定区域中。
但是,烦扰我的是什么以及我实际想要实现的目标是:
显示从流中读取的行,而不是在整个流完成后(现在已完成)。
这意味着(例如,类似于)为Stream-reading循环中的每一行调用render:
while ((line = bri.readLine()) != null) {
System.out.println(line);
//render line here?
}
这可以实现吗?
请解释:)
答案 0 :(得分:2)
我认为没有标准的grails方法来实现你想要的行为。
g:remoteFunction仍然是一个包装AJAX请求的标记。请求受限于请求响应模式 - 您无法获得一个请求的多个响应。 您的操作代码不会自动修改。
您必须自己实施。
我会尝试以下方法: