我们的过程非常漫长,我们想通过网页脚本的端点触发进度
但是由于步骤太多而太长,我们希望在正文中编写已完成的步骤,并希望在创建步骤的同时将它们显示在客户端浏览器中。
我尝试刷新outputStream,但是不会立即将输出呈现到浏览器中。浏览器会等到所有步骤完成以显示输出为止
public class ProgressiveProcessWebscript implements AbstractWebScript
public final void execute(WebScriptRequest request,
WebScriptResponse response) {
...
response.setContentType(MIMETYPE_TXT);
OutputStream output = response.getOutputStream();
FilterOutputStream filterOutputStream = new FilterOutputStream(output);
for (Step step: stepList) {
step.execute();
filterOutputStream.write(step.getName().getBytes());
filterOutputStream.flush();
}
WebScriptResponse
答案 0 :(得分:0)
您不能简单地写入OutputStream
并将其刷新。您必须实现另一个概念。您的问题有不同的解决方案。
您应该看一下这篇出色的文章:What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet?
在我看来,Ajax Long Polling解决方案可能是最简单的方法,因为您不需要任何其他框架服务器端。