2011-11-02 13 views
9

Mi chiedo solo se document.myForm.submit() è una chiamata sincrona, che bloccherà fino al termine ... o se è asincrona e continuerà a essere eseguita senza attendere il ritorno dell'invio. Grazie per qualsiasi aiuto.Il modulo è inviato in sincrono o asincrono?

risposta

14

È una chiamata asincrona.

Tuttavia, ad un certo punto, la nuova pagina verrà caricata e la pagina verrà distrutta.

+0

Significa che un 'form.submit(); window.close(); 'la sequenza in un popup è errata perché la finestra potrebbe essere distrutta prima che l'invio sia finito? Mi aspetto che i browser assicurino che la richiesta venga completata, indipendentemente dal tentativo di chiudere il contesto, ma sto riscontrando errori di aggiornamento sporadici sul lato server, ecco perché sto chiedendo (dopo mezz'ora di googling infruttuoso). –

1

Il browser sembra continuare a eseguire javascript immediatamente dopo aver inviato un modulo. In questo esempio jsFiddle, l'istruzione del registro viene stampata prima che il modulo venga inviato.

Markup

<form action="foobar"></form> 
<button id="submitBtn">Submit</button> 

Javascript

var button = document.getElementById('submitBtn'); 
button.onclick = function() { 
    document.forms[0].submit(); 
    console.log('after submitting'); 
}; 
1

ho avuto una pagina JSP che una funzione di pagina ricaricare segue subito dopo un metodo di invio. Quindi ho subito un errore di "Inaspettata fine della parte" immediatamente. Submit() deve essere asincrono.

Problemi correlati