JavaScript — PHP с кометой / ajax и ob_flush

Я пытаюсь использовать 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";

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]