jueves, febrero 16, 2012
Problemas con ob_flush y chrome
El ob_flush() y flush() en php nos sirven para enviar al navegador el buffer de salida si es que hay. Esto que significa?
Imagina un script que tarda unos 15 segundos desde que entras a la página hasta que ves el contenido total de la misma, a lo mejor lees una base de datos muy grande, envías muchos emails o realizas un proceso muy largo que tarda en desplegar la página y tus visitantes se desesperan al ver que no hace nada la página porque está "cargando".
para estos casos utilizas el ob_flush, que hace que si ya imprimiste algo, se lo mandes al navegador web y este lo imprima en pantalla aunque no haya terminado tu script de ejecutarse. La ventaja que tiene es que el usuario puede ver lo que va pasando en su navegador y no se desespera.
Recientemente tuve un problema con esto en chrome y firefox que resultó ser un problema no del navegador ni de mi código sino del servidor. Más que un problema era debido a la configuración del servidor al usar compresión gzip para mandar las páginas. Para solucionar este problema con ob_flush, encontré una solución usando un .htaccess. Crea un archivo .htaccess con el siguiente contenido, en la misma carpeta de tu script.
SetEnv no-gzip dont-vary
Con esto desactivas gzip para los scripts de tu carpeta y ya no tendrás problemas
Suscribirse a:
Comentarios de la entrada (Atom)
0 comments:
Publicar un comentario