2009-04-02 11 views
5

Si hago una llamada AJAX, ¿se cancelará la llamada AJAX si el usuario presiona "ESC" o abandona esa página?¿Se cancelan los procesos PHP a través de AJAX en "ESC"?

Si se cancela la llamada AJAX, mi script PHP continuará ejecutándose hasta que finalice lo que estaba haciendo (siempre que no se alcance el límite de tiempo o se detenga cualquier otra configuración del servidor), o se mataría ese proceso en al mismo tiempo que el niño Apache al que pertenece?

Si el proceso se mata con el niño Apache, incluso si no terminó, ¿cuál sería la mejor manera de mantenerlo vivo o qué otras opciones debería considerar? (ZendX_Console_Process_Unix no es una opción).

Gracias!

descubrimientos posteriores:

La llamada AJAX realidad se cancela si golpeo "ESC" en Firefox (comprobado en Firebug). El proceso de PHP continúa y no se ve afectado al presionar ESC o cerrar la pestaña.

+0

¿Cómo es posible que el servidor sepa que el usuario tocó esc? –

+0

Esto permitirá que el servidor sepa que el usuario ha pulsado esc. "echo 1>/proc/sys/kernel/more_magic" (¡solo Linux!) – epochwolf

Respuesta

3

Si el proceso del servidor se inicia antes de que el usuario finalice la llamada ajax (cerrando la ventana o moviéndose a otro sitio web), entonces se llevará a cabo hasta su resultado final. Pero una llamada ajax interrumpida (lo que significa que no se completó la transmisión de datos) el servidor no procesará la llamada.

Nota: presionar ESC no terminará una llamada ajax per se, a menos que hayas creado JavaScript.

+1

Cancela la llamada ajax incluso si no está encriptada. Aunque la primera parte de su respuesta es verdadera :) –

-1

Una nota ... si invocó su llamada AJAX desde un hipervínculo, utilizando el atributo href, entonces SÍ, el usuario puede presionar ESC y detener la transmisión.

<a href="javascript:doFoo();">This can be canceled by pressing ESC</a> 

<a href="#" onclick="doFoo();">This can NOT be canceled by pressing ESC</a> 
+0

El proceso se cancela de cualquier forma que se llame. (intenté con href, onclick y el método addEvent mediante mootools.) –

+0

no estoy seguro de cómo funciona la prueba, pero sé con certeza que el evento onclick no puede ser cancelado por el usuario. Veré si puedo encontrar un caso de prueba para demostrar. – scunliffe

+0

hhm, tendré que retirarlo ... hay otras condiciones necesarias que no tomé en consideración. – scunliffe

Cuestiones relacionadas