2009-09-15 22 views

Respuesta

5

Para ejecutar PHP aplicación siempre o hasta php termina

ignore_user_abort(true); 

set_time_limit(0); 
+0

Parece inseguro si la página se solicita con frecuencia, el servidor podría tener una gran cantidad de procesos que no están haciendo nada. – rsman

4

que podría estar interesado por la directiva de configuración ignore_user_abort, y/o la función ignore_user_abort:

establece si la desconexión de un cliente debe causar una suspensión del script.

uso de este, usted podría:

  • generar la parte de la página que tiene que ser enviado al navegador
  • ras la salida, con flush y/o ob_flush
  • llamada ignore_user_abort(ahora o antes)
  • haga un poco más de trabajo

El navegador del usuario probablemente todavía indique "esperar" o "cargar", pero el contenido de la página se cargará y se mostrará, e incluso si el usuario presiona "detener", su secuencia de comandos debe continuar su ejecución.

Para más información, no es un ejemplo en la página del manual de los que la función - y se puede echar un vistazo a este artículo: How to Use ignore_user_abort() to Do Processing Out of Band


Por supuesto, si bien esto puede ser usado para algún proceso luz (como "limpiar" cosas al final de una página, mientras lo muestra lo más rápido posible para el usuario), todavía estará limitado por max_execution_time y similares.

Por lo tanto, esta no es una solución que se debe utilizar para cálculos largos/pesados.

Cuestiones relacionadas