Alexandre.Gaigalas.Net

Desenvolvedor, autor e projetista de interfaces.

Como fazer o PHP continuar após a página carregar

A mágica toda está na função ignore_user_abort(), basta chamá-la com o primeiro parâmetro true e a página continuará processando mesmo após o usuário cancelar o carregamento (botão Stop do navegador, geralmente). Também é possível fazer o PHP parar em um determinado momento o carregamento da página e continuar em background, mas é um pouco mais engenhoso, em no mínimo oito linhas:

  1. ob_start(); //Pra segurar o buffer de saída
  2. ignore_user_abort(true); //A mágica
  3. echo "Minha página"; //Aqui vai o que será exibido no navegador
  4. header("Connection: close"); //Pra dizer ao navegador fechar a conexão (ignora o Keep-Alive)
  5. $len = ob_get_length(); //Armazena o tamanho do buffer de saída
  6. header("Content-length: $len"); //Pra informar ao navegador o tamanho do buffer
  7. ob_end_flush();flush(); //Pra enviar o buffer de saída de uma vez
  8. mail(‘example@example.com’, ‘Teste’, ‘Teste’); //Qualquer processamento em background

Mais informações aqui (em inglês).

Comentar

Você pode usar os seguintes HTML atributos e tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>