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 ответов

Другие вопросы по тегам