Meglio chiamata $.ajax asincrona o sincrona?

di il
3 risposte

Meglio chiamata $.ajax asincrona o sincrona?

Buongiorno,

in una pagina di gestione anagrafica cliente oltre alla possibilità di scorrere l'elenco dei clienti già registrati c'è ovviamente la possibilità di creare e modificare un cliente esistente.
Tali funzioni vengono gestite tramite finesta pop-up e registrate nel db tramite chiamata jquery.

Ora nel form da compilare, sia per nuovo cliente che per modifica ci sono dei menù a tendina i cui valori sono presi da tabelle del DB.
E qui la domanda: conviene fare un chiamata $.ajax sincrona all'apertura del pop-up oppure meglio una chiamata $.ajax asincrona all'apertura della pagina e tenere in una variabile javascript l'elenco delle <option> dei vari select del form?

Preciso che i menù a tendina hanno una 20ntina di valori massimo e non vengono modificati spesso.
L'elenco da tenere nella variabile quindi non è molto lungo, per questo mi sorge il dubbio che forse fare una chiamata all'inizio pagina non sia poi una scelta sbagliata.

Grazie!

3 Risposte

  • Re: Meglio chiamata $.ajax asincrona o sincrona?

    Non c'e' "e' meglio".

    Sono due filosofie di programmazione TOTALMENTE differenti legate a problemi di performance della rete:

    1) se la chiamata e la risposta e' ISTANTANEA, chiamata sincrona e asincrona sono praticamente equivalenti
    2) se la risposa richiede MOLTO TEMPO, la chiamata sincrona e' impraticabile.

    TUTTE le applicazioni WEB andrebbero scritte in forma asincrona.
  • Re: Meglio chiamata $.ajax asincrona o sincrona?

    Perfetto grazie!
  • Re: Meglio chiamata $.ajax asincrona o sincrona?

    Eranius ha scritto:


    E qui la domanda: conviene fare un chiamata $.ajax sincrona all'apertura del pop-up oppure meglio una chiamata $.ajax asincrona all'apertura della pagina e tenere in una variabile javascript l'elenco delle <option> dei vari select del form?
    Le chiamate sincrone sono ormai deprecate, ovvero non dovrebbero essere utilizzate: non puoi fare affidamento sulla velocità con cui ottieni la risposta, che potrebbe richiedere anche diversi secondi, e questo comporterebbe un effetto di "blocco" totale del browser e/o (ancora peggio) del dispositivo mobile (scenario in cui il problema viene tollerato ancora meno).

    La modalità sincrona è disponibile per compatibilità all'indietro (diciamo "per grazia ricevuta") nella libreria JQuery, ma se utilizzi framework più evoluti, tipo Angular, non è nemmeno più una opzione viabile.

    In breve, meglio evitare le chiamate sincrone e abituarsi alle chiamate asincrone da subito (anzi è già tardi), utilizzando tutti gli strumenti generalmente disponibili (es. callback, Promise, ecc.) quando è necessario sequenziare delle istruzioni a fronte del completamento di una chiamata, gestire gli errori in modo strutturato e così via.

    Ciao!
Devi accedere o registrarti per scrivere nel forum
3 risposte