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