2009-04-02 5 views
5

Se eseguo una chiamata AJAX, la chiamata AJAX si annulla se l'utente ha premuto "ESC" o ha lasciato quella pagina?I processi PHP chiamati tramite AJAX sono stati annullati su "ESC"?

Se la chiamata AJAX viene cancellato, sarebbe il mio script PHP continua a funzionare fino a quando è finito quello che stava facendo (termine di cui non venga raggiunto o si interrompe qualsiasi altra configurazione del server.), O sarebbe quel processo ottenere ucciso allo stesso tempo del bambino Apache a cui appartiene?

Se il processo viene ucciso con il figlio Apache anche se non è stato completato, quale sarebbe il modo migliore per mantenerlo vivo o quali altre opzioni dovrei prendere in considerazione? (ZendX_Console_Process_Unix non un'opzione).

Grazie!

scoperte successive:

La chiamata AJAX in realtà viene cancellato se ho colpito "ESC" in Firefox (il check-in Firebug). Il processo PHP continua e non viene modificato premendo ESC o chiudendo la scheda.

+0

Come può il server conoscere l'utente colpito esc? –

+0

Ciò consentirà al server di conoscere l'utente hit esc. "echo 1>/proc/sys/kernel/more_magic" (solo Linux!) – epochwolf

risposta

3

Se il processo del server viene avviato prima che l'utente interrompa la chiamata ajax (chiudendo la finestra o spostandosi su un altro sito Web), verrà eseguita fino al suo risultato finale. Ma una chiamata ajax interrotta (il che significa che la trasmissione dei dati non è stata completata) il server non elaborerà la chiamata.

Nota: premendo ESC non si termina una chiamata ajax di per sé, a meno che non abbia effettuato il javascripted del comportamento di keypush.

+1

Annulla la chiamata ajax anche se non è stata scritta. Anche se la prima parte della risposta è vera :) –

-1

Una nota ... se hai richiamato la tua chiamata AJAX da un collegamento ipertestuale, utilizzando l'attributo href, quindi YES, l'utente può premere ESC e interrompere la trasmissione.

<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

Il processo viene annullato in qualsiasi modo venga chiamato. (provato con href, onclick e addEvent metodo via mootools.) –

+0

non sono sicuro di come funziona il test, ma so per certo che l'evento onclick non può essere annullato dall'utente. Vedrò se riesco a trovare una prova da dimostrare. – scunliffe

+0

hhm, dovrò riprenderlo ... ci sono altre condizioni necessarie che non ho preso in considerazione. – scunliffe

Problemi correlati