Fórum PHP buffer ob_flush() vs. flush() #571515
24/11/2016
0
Qual é a diferença entre ob_flush() e flush() ?
Marilia
Curtir tópico
+ 0
Responder
Posts
30/11/2016
Gregory Monteiro
ob_flush() referência diz:
Esta função irá enviar o conteúdo da memória intermédia de saída (se qualquer).
A flush()referência diz:
Descarrega os buffers de gravação de PHP e tudo o PHP backend está usando (CGI, um servidor web, etc).
ob_flush envia um buffer iniciado pelo aplicativo. Pode haver várias ob_starts() aninhadas em qualquer script PHP. ob_flush transmite o conteúdo atual para a camada superior.
O PHP pode por si só transmitir buffer de saída. Isso depende do backend. Mas normalmente FastCGI tem um buffer de soquete por conta própria. Por isso flush() precisa ser invocado, bem como para enviar o conteúdo atual para o servidor web.
E agora o servidor web em si pode implementar outro esquema de buffer (mod_deflate ou filtro de conteúdo), que você não tem nenhuma influência sobre. Mas isso é raro e precisa ser configurado especificamente.
De qualquer modo, utilizar ambos.
Esta função irá enviar o conteúdo da memória intermédia de saída (se qualquer).
A flush()referência diz:
Descarrega os buffers de gravação de PHP e tudo o PHP backend está usando (CGI, um servidor web, etc).
ob_flush envia um buffer iniciado pelo aplicativo. Pode haver várias ob_starts() aninhadas em qualquer script PHP. ob_flush transmite o conteúdo atual para a camada superior.
O PHP pode por si só transmitir buffer de saída. Isso depende do backend. Mas normalmente FastCGI tem um buffer de soquete por conta própria. Por isso flush() precisa ser invocado, bem como para enviar o conteúdo atual para o servidor web.
E agora o servidor web em si pode implementar outro esquema de buffer (mod_deflate ou filtro de conteúdo), que você não tem nenhuma influência sobre. Mas isso é raro e precisa ser configurado especificamente.
De qualquer modo, utilizar ambos.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)