我正在使用播放框架来生成分块响应。代码是:
class Test extends Controller {
public static void chunk() throws InterruptedException {
for (int i = 0; i < 10; i++) {
String data = repeat("" + i, 1000);
response.writeChunk(data);
Thread.sleep(1000);
}
}
}
当我使用浏览器访问时http://localhost:9000/test/chunk
,我可以看到显示的数据每秒都在增加。但是,当我编写一个 javascript 函数来接收和处理数据时,发现它会阻塞,直到收到所有数据。
代码是:
$(function(){
$.ajax(
"/test/chunked",
{
"success": function(data, textStatus, xhr) {
alert(textStatus);
}
}
);
});
收到所有数据后,我可以看到一个消息框在 10 秒后弹出。
如何获取流并及时处理数据?