PDA

View Full Version : [js e un pò di ajax] sospendere l'esecuzione di una funzione


Dawidh
20-01-2009, 16:46
Ciao, come da titolo vorrei sapere se in javascript è possibile in qualche modo sospendere l'esecuzione di una funzione e poi riprenderla dal punto in cui l'ho fermata.

Vi spiego la situazione così magari voi sapete qualche altro metodo alternativo che a me non viene in mente:

Io devo inviare i dati di un form, ma questi devono venire effettivamente processati solo se un'altra funzione (che in pratica mi fa l'upload di un file) non fallisce, l'utente clicca su salva, compare la scritta i dati verranno salvati a caricamento finito... e se finisce il caricamento allora salvo veramente i dati.

Idee? grazie!!

gugoXX
20-01-2009, 16:58
Ciao, come da titolo vorrei sapere se in javascript è possibile in qualche modo sospendere l'esecuzione di una funzione e poi riprenderla dal punto in cui l'ho fermata.

Vi spiego la situazione così magari voi sapete qualche altro metodo alternativo che a me non viene in mente:

Io devo inviare i dati di un form, ma questi devono venire effettivamente processati solo se un'altra funzione (che in pratica mi fa l'upload di un file) non fallisce, l'utente clicca su salva, compare la scritta i dati verranno salvati a caricamento finito... e se finisce il caricamento allora salvo veramente i dati.

Idee? grazie!!

Non so se ho capito veramente quello che vuoi fare.

Puoi ridirigere la callback della funzione Salva ad un'altro metodo della tua form dati, la quale chiamera' un'altra AJAX, la cui callback sara' l'uscita della form.

Dawidh
20-01-2009, 17:16
Per farla semplice, hai mai usato youtube e caricato un video??

Allora quando carichi un video ti mette in attesa mentre lo trasferisce dal tuo computer al suo server, nel frattempo compare una div dove puoi inserire il titolo, la descrizione etc del video caricato, quando salvi le info sul file compare:
Successo: Le tue impostazioni video verranno salvate una volta terminato il caricamento del video.

Ecco, io volevo fare una cosa così; ossia se il file si salva correttamente voglio far salvare anche le info altrimenti non le uso....

Mi è venuto in mente ora che magari in youtube le informazioni del file vengono comunque già salvate nel database e se il caricamento del file fallisce vengono eventualmente cancellate successivamente.

Lo so che voglio complicarmi la vita ma volevo appunto bloccare momentaneamente il salvataggio delle informazioni del file e continuare solo ed esclusivamente se il file non fallisce il caricamento.

Spero di essere stato più chiaro possibile.

Torav
20-01-2009, 18:05
se non puoi utilizzare una tabella di db di "appoggio" puoi fare qualche cosetta sporca tipo nascondere il form invece di inviarlo ed inviarlo veramente solamente quando l'upload del file è finito.. temo che ora come ora però dovresti usare un iframe per l'upload del file, ma dovrebbe essere fattibile. Altrimenti devi rendere in qualche modo "persistenti" i dati inseriti nel form (scrivendoli su un file temporaneo per esempio)

Dawidh
20-01-2009, 18:52
Capisco, quindi non ci sono proprio possibilità di sospendere una funzione e riprenderla... mi sa che opterò per salvare comunque i dati e poi in caso di fallimento li cancello dal db... che mi sembra il metodo più semplice...
Grazie per la disponibilità..