Я использую игровую среду, чтобы генерировать частичный ответ. Код:
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 секунд, когда все данные получены.
Как получить поток и вовремя обработать данные?