ajax: è possibile la sincronia?

radioButton

Utente Attivo
26 Dic 2013
35
0
6
Arezzo
Ciao a tutti,
vorrei porre una questione dovuta probabilmente al fatto che, seppur usando Ajax, non ne ho comprese ancora bene le caratteristiche di asincronia e sincronia.
Vengo alla questione:
sto scrivendo un programma che deve mandare (tra le altre cose) dei dati ad un database. Questi dati saranno successivamente elaborati per ricavarne grafici e quant'altro.
Per semplificare la spiegazione diciamo che ad ogni evento click di un particolare tasto viene richiamata una funzione ajax che manda un record di dati al database.
E' indispensabile che la sequenza di invio venga rispettata per non avere risultati sballati nella successiva elaborazione. Quindi se per esempio uno dei campi riporta il numero di invii
dovrà per esempio essere:

ID CONTATORE
.... .......
.... .......
345 10
346 11
347 12
.... .......

Tutto funziona come dovrebbe tranne qualche caso nel quale succede che la sequenza contatore non è esatta ossia capita che:

ID CONTATORE
.... .......
.... .......
345 10
346 12
347 11
.... .......

mi sto spiegando questo inconveniente adducendo il problema al fatto che essendo le chiamate ajax asincrone è possibile che anche se l'invio 12 è partito dopo l'11,
nel caso in cui l'11 per qualche caso strano non venga immediatamente registrato, non venga rispettato l'ordine di invio ma il primo che arriva prende la priorità di registrazione: mi sbaglio o
è possibile tutto ciò?
E' possibile risolvere il problema impostando la proprietà 'async:"false"'?
In tal caso siccome le chiamate ajax dovrebbero essere asincrone per loro natura quali problemi collaterali potrebbero sorgere?

Grazie a tutti coloro che hanno avuto la pazienza di leggere queste mie righe.
 
Ciao, si è possibile lo scenario da te ipotizzato.
Infatti vorrei chiederti se questi dati non puoi raccoglierli e inviarli insieme.

Altrimenti l'unica è realizzare una funzione ricorsiva che viene chiamata ad ogni richiesta ajax riuscita, scorrendo il valore da inviare da un oggetto lista.
 
Ciao, si è possibile lo scenario da te ipotizzato.
Infatti vorrei chiederti se questi dati non puoi raccoglierli e inviarli insieme.

Altrimenti l'unica è realizzare una funzione ricorsiva che viene chiamata ad ogni richiesta ajax riuscita, scorrendo il valore da inviare da un oggetto lista.

Ciao,
ti ringrazio della risposta, sono contento che mi confermi che i miei dubbi avevano fondamento così sò dove concentrare le mie attenzioni.
A partire da tuo suggerimento potrei creare una funzione che ad ogni aggiunta di un record alla tabella del database va a controllare se la successione del contatore è giusta,
in caso contrario scambiare gli id dei record che si sono accavallati.
P.S. Mi confermi comunque che dare alla chiamata la caratteristica di 'sincronia' comporterebbe comunque problemi? Io per sincronia intendo il fatto che nel caso in cui la chiamata
ajax partita per prima non abbia raggiunto il suo scopo, fino a quando ciò non accade le altre rimangono in attesa in coda (sempre se così funziona).
 

Discussioni simili