Я пытаюсь использовать ob_flush()
а также flush()
от контроллера TYPO3, но результат странный. В консоли веб-браузера я вижу, что каждый сброс не приводит к одному ответу в Javascript; нет взаимно однозначного соответствия между сбросом на сервере и реакцией в javascript. Это код:
// PHP
foreach ($ids as $id) {
echo $id;
ob_flush(); // <-- Flush 1, 2, 3, ...
flush();
// more data processing...
}
// Javascript
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
}
else if (xhr.readyState > 2) {
console.log(xhr.responseText); // <-- Can log "123" in one go
}
}
Как мне заставить один flush
привести ровно к одному ответу в Javascript?
Может ли быть так, что сброс происходит так часто, что Apache2 не успевает среагировать?
редактировать: Решено путем включения этого после echo
:
echo str_pad('',4096)."\n";
Задача ещё не решена.
Других решений пока нет …