Domanda

sto facendo AJAX con JQuery, ma ogni volta che l'evento "onSuccess" deve essere eseguita dopo l'altra richiesta AJAX scollegato.

Ecco il codice:

    d.ajax({
        url: f.options.url.offline,
        dataType: "jsonp",
        jsonp: "callback",
        cache: false,
        data: {
            status: "offline",
            ticket: f.connection.options.ticket
        },
        success: function(g) {
            f._offlineSuccess()
        },
        error: function() {
            f._offlineError()
        }
    })

Tutte le mie richieste AJAX sono JSONP, e quando viene attivato il codice di cui sopra, v'è un altro collegamento AJAX (lunga richiesta di polling, dura circa 10 senconds) già stabilito nel frattempo. Così la funzione "f._offlineSuccess" viene sempre eseguito dopo un altro collegamento AJAX scollegato.

Non riesco a vedere alcuna relazione tra le due richieste AJAX, e non so il motivo per cui la funzione "onSuccess" deve essere eseguita dopo un altro collegamento AJAX fermato.

Ogni aiuto è apprezzato ~

================================

aggiornamento:

ho scoperto se ho due connessioni JSONP allo stesso tempo, la funzione "onSuccess / onFailure" sarà bloccato. Non so se qualcuno ha riscontrato lo stesso problema prima?

È stato utile?

Soluzione

richieste Ajax sono asincrone. quindi una nuova richiesta non sta andando per il precedente per terminare. Se si vuole che utilizzare il parametro comportamento async su false, o utilizzare la funzione completa () per chiamare un'altra richiesta. Questo sarà il fuoco solo quando la prima richiesta è finito.

UPDATE Per JSONP utilizzare jQuery.getJSON () e fare la seconda richiesta di richiamata sul se la chiamata era di successo.

function (data, textStatus) {
    // data will be a jsonObj
    // textStatus will be one of the following values: 
    //   "timeout","error","notmodified","success","parsererror"
    this; // the options for this ajax request
}

Altri suggerimenti

Se si utilizza Firebug - scheda rete, si sarà in grado di visualizzare l'URL completo delle due richieste JSONP. Si dovrebbe essere in grado di vedere i nomi delle funzioni di richiamata alla fine dell'URL. Sono questi diverso o lo stesso? Posso solo supporre che siano gli stessi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top