Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/09/2011, 13:25
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Búfer de salida

Cita:
Iniciado por IXtremeLT
Me resulta ilógico porque, según yo, para que se retengan los datos en el búfer de salida, se necesita utilizar ob_start(), pero si no lo estoy utilizando... ¿Por qué es necesario limpiar el búfer de salida?
Parece que no entendiste del todo, necesitas leer el manual de PHP para flush():

Cita:
Vacía los búferes de salida de PHP y de cualquiera que sea el motor que PHP esté usando (CGI, un servidor web, etc). Esto en efecto trata de enviar toda la salida acumulada hasta el momento al navegador del usuario.

flush() quizá no puede sobreescribir el esquema del búfer en su servidor web y no tiene efectos sobre el método de uso de búferes de su servidor web o del navegador en el lado del cliente. Por lo tanto es necesario llamar tanto a ob_flush() como a flush() para volcar los búferes de salida.

Varios servidores, especialmente en Win32, seguirán almacenando la salida de su script en búferes hasta que éste termine antes de transmitir los resultados al navegador.

Puede que algunos módulos de servidor para Apache como mod_gzip usen búferes propios que causarán que flush() no resulte en un envío inmediato de datos al cliente.

Incluso el navegador puede usar búferes de entrada antes de mostrar el resultado. Netscape, por ejemplo, almacena en búfer el texto hasta que recibe un final-de-línea o el comienzo de una etiqueta, y no renderiza las tablas hasta que la etiqueta </table> de la tabla más externa sea encontrada.

Algunas versiones de Microsoft Internet Explorer solo empezarán a mostrar la página después de que han recibido 256 bytes de salida, así que puede que sea necesario enviar espacios en blanco extra antes del volcado para lograr que se muestre la página en esos navegadores.

http://php.net/manual/es/function.flush.php
Resumen:
flush() tratara de forzar al navegador a vaciar todos los buferes de salida, PHP, Servidor web, compresion y navegador.
ob_flush() y similares se limitan solo a los buferes de PHP.
__________________
- León, Guanajuato
- GV-Foto