Frage

ich AJAX mit JQuery mache aber jedes Mal, wenn das „onSuccess“ Ereignis muss getrennt nach der anderen AJAX-Anforderung ausgeführt werden.

Hier ist der Code:

    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()
        }
    })

Alle meine AJAX-Anfragen sind JSONP, und wenn der obige Code ausgelöst wird, gibt es eine weitere AJAX-Verbindung (lange Abfrageanforderung, etwa 10 senconds dauern) bereits in der Zwischenzeit etabliert. So ist die „f._offlineSuccess“ -Funktion immer nach der anderen AJAX-Verbindung getrennt ausgeführt wird.

Ich kann keine Beziehung zwischen den beiden AJAX Anfragen sehen, und ich weiß nicht, warum die „onSuccess“ Funktion ausgeführt werden muss nach dem anderen AJAX-Verbindung beendet.

Jede Hilfe ist willkommen ~

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

Update:

Ich fand heraus, nur wenn ich zwei JSONP Verbindung zur gleichen Zeit haben, die „onSuccess / onFailure“ Funktion wird blockiert. Ich weiß nicht, ob jemand vor dem gleichen Problem begegnet?

War es hilfreich?

Lösung

Ajax-Anfragen sind asynchron. so eine neue Anforderung wird nicht für den vorherigen zu beenden. Wenn Sie möchten, dass der Parameter Verwendung asynchrone Verhalten falsch ist, oder verwenden Sie die vollständige () Funktion für eine weitere Anfrage zu rufen. Das Feuer wird nur dann, wenn die erste Anforderung abgeschlossen ist.

UPDATE Verwendung für JSONP jQuery.getJSON () und führen Sie die zweite Anforderung auf Rückruf, wenn der Anruf succesfull war.

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
}

Andere Tipps

Wenn Sie Firebug - net Registerkarte können Sie die vollständige URL der beiden JSONP Anfragen sehen. Sie sollten die Callback-Funktion Namen am Ende der URL sehen können. Sind diese unterschiedlich oder gleich? Ich kann nur annehmen, dass sie gleich sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top