Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Azucchi
    Registrato dal
    Jul 2014
    Messaggi
    123

    ajax async: false vs. meccanismo delle callback

    Buongiorno a tutti
    A seguito di una funzione Ajax devo richiamare un'altra funzione Ajax per poi eseguire il metodo alert().
    Ho risolto mettendo async: false, per evitare l'esecuzione del metodo alert() prima della fine dell'esecuzione del metodo callajax.

    codice:
    success: function (data) {                                     
                               if (data==0) {                                                                                                                                        
                                     callajax(scope, id, exid);
                                     alert("Non sono permessi duplicati!");
                                   }
    }
    codice:
    function callajax(scope, id, exid) {
       $.ajax({
                    async: false,
                     ...
    
       });
    }
    L'alternativa è usare il meccanismo delle callback lasciando asincrona la chiamata ajax.
    codice:
    success: function (data) {                                     
                                if (data==0) {                                                                                                                
                                   callajax(scope, id, exid, function() {
                                                alert("Non sono permessi duplicati!");
                                   });
    }
    codice:
    function callajax(scope, id, exid, callback) {
       $.ajax({
                    async: true,
                     ...     
                    success: function (data) {
                     callback();
                    }
       });
    }
    Quale delle due strade è migliore percorrere secondo voi?
    Ultima modifica di Azucchi; 19-08-2014 a 11:14

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non usare chiamate sincrone

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di Azucchi
    Registrato dal
    Jul 2014
    Messaggi
    123
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Non usare chiamate sincrone

    Infatti stavo giusto leggendo che l'uso di chiamate sincrone è deprecato dalla versione 1.8 di jquery . Non mi resta che usare il meccanismo delle callback, nonostante lo reputi più complicato :P

  4. #4
    Utente di HTML.it L'avatar di Azucchi
    Registrato dal
    Jul 2014
    Messaggi
    123
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Non usare chiamate sincrone

    Tuttavia non mi e' chiara una cosa: se ho bisogno di recuperare dei dati indispensabili dal database per manipolarli successivamente non posso fare una richiesta asincrona. Potresti chiarire il perché è deprecato l'uso di async: false? Grazie.
    Leggo sul forum che la questione è parecchio dibattuta:
    http://bugs.jquery.com/ticket/11013
    Ultima modifica di Azucchi; 19-08-2014 a 13:22

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.