아래의 코드는 큰 파일을 통해 하나씩 줄을 긋습니다 ...
하지만이 6000 줄짜리 줄을 기다리고 기다리는 중입니다. 파일 - 브라우저 상태 메시지 "localhost에서 데이터 전송 중 ..."- 결국 나타납니다!PHP의`output buffering & flushing` 작업을 기대하고 있습니다.
은 내가 즉시 응답 브라우저를하고 싶습니다
//------------------------------------------------
if (ob_get_level() == 0) ob_start();
//------------------------------------------------
echo '<pre><ol>';
$handle = fopen($file, "r");
while(!feof($handle)){
$line = fgets($handle);
echo '<li>' , $line , "\n";
//------------------------------------------------
ob_flush();
flush();
//------------------------------------------------
}
echo '</pre>';
fclose($handle);
//------------------------------------------------
ob_end_flush();
//------------------------------------------------
.. 대기를 방지하고 즉시 결과를 보려면 여기를 수행 할 다른 무엇을 그냥 궁금 해요 - 서버 프로세스로 각 반복에 루프.
결과적으로 브라우저에서 문서가 커지면서 세로 스크롤 막대가 점점 작아지고 일정하게 유지되는 것을 볼 수 있어야합니다.
OB 시스템을 켜고 모든 반복마다 버퍼를 플러시 할 때 ** NO ** 포인트가 있습니다. 단지'flush()'를 호출하십시오. PHP가 버퍼를 비우더라도 위에있는 웹 서버가하는 일을 제어 할 수 없다는 것을 기억하십시오. –
왜 AJAX로 단순히 그것을하는 것이 아닙니다. –
마크, 나는 그것을 시도했다. 그 안에 ob_가있는 모든 줄을 제거했습니다. 정확히 말하면, 원래 스크립트에서 3 행을 주석 처리하고 flush() 만 남겨 둡니다. 차이 없음. –