Ich versuche, meinen Kopf um das ganze deferred
Konzept zu bekommen und ich versuche es zu verwenden, um eine fadeIn
/ Animation zusammen mit einem Ajax Anruf zu synchronisieren.Verwendung von Jquery aufgeschoben, um Animation und Ajax zu synchronisieren
Grundsätzlich ist ich Schale Inhalt auf Seite Tun:
- mit Inhalt Fetch Ajax
- Auf Antwort Fadeout
- Inhalt ersetzen
- FadeIn
Wenn ich aber verstehen deferred
s richtig kann ich in der Lage sein, etwas wie das zu tun:
- fadeOut, und zur gleichen Zeit initialisieren Inhalte mit Ajax-Fetch
- Wenn sowohl die fadeOut und der Fetch Inhalt vollständig sind: Änderung Inhalt
- FadeIn
Einige Code der ursprünglichen Lösung:
$.get(url, function(page) {
$('#content').fadeTo(100, 0, 'linear', function() {
$(this).html(page.text).fadeTo(400, 1, 'linear');
});
}
ich versuche, so etwas zu tun:
var deferred1 = $.get(url);
var deferred2 = $('#content').fadeTo(100, 0, 'linear').promise();
$.when(deferred1, deferred2).done(function() {
$('#content').html(page.text).fadeTo(400, 1, 'linear');
});
Ich kann nicht wirklich klar darüber, wie man es benutzt. Und sollte ich fertig oder dann verwenden? Soll ich clever Pfeife benutzen? Benötige ich promise
?
Was wäre der "standardisierte" Weg, dies zu implementieren?
Sind Sie sicher, dass er '.promise()' nicht benötigt - AIUI ein jQuery-Objekt implementiert nicht automatisch die Promise-Schnittstelle, um die Beendigung der Animation anzuzeigen, Sie müssen '$ (...). 'um das gewünschte Versprechen zu bekommen. – Alnitak
@Alnitak: Afaik tut es. Es sei denn, es wurde kürzlich geändert. * edit: * Funktioniert immer noch: http://jsfiddle.net/y5Fk7/. –
nicht, dass ich weiß, es war so, seit Animation in 1.6 verzögert Unterstützung unterstützt. Siehe "http: // api.jquery.com/promise /' gegenüber der Funktion 'defered.promise()'. Der Aufruf von '.promise' auf einem deferred just stellt sicher, dass Sie nur ein (stripped) Objekt erhalten, das nur die Promise-Schnittstelle implementiert, aber den Aufruf von' .promise' auf einem jQuery-Objekt benötigt, um das dynamische Versprechen zu erstellen, das die Animation dieses Elements überwacht Warteschlange. – Alnitak