我正在尝试将 AJAX 请求作为 WebApplication 的一部分来实现。服务器端需要很长时间才能完全处理请求,但它可以很早就输出单项结果。所以我的意图是让客户端在响应部分到达后立即渲染它们,而不是等到响应完成。
这是我的(简化的)服务器端代码:
for (myObj o : db.results()) {
// some rather slow operations at this place
JSONObject j = new JSONObject();
j.put("tag1", o.tag1());
j.put("tag2", o.tag2());
System.out.println("Sending partial response: " + j.toString() );
response.getWriter().write(j.toString());
response.getWriter().flush();
}
我的客户端 jquery 请求看起来像这样:
$.ajax( {
type: "GET",
url: "queryURL",
dataType: "text",
success: function (data) {
alert("received " + data);
}
});
不幸的是,成功功能仅在响应完成后才执行。每次调用时我都找不到执行函数的方法response.getWriter().write()
。有没有办法做到这一点?