..
Es ist ein paar Wochen aus der Version 1.5 von unserem geliebten jQuery, gefolgt postwendend 1.5.1, im Grunde eine fehlerbereinigte Version des ersten.
Mein erster Instinkt führte mich zu glauben, dass man einige Zeit warten, bis Churn dieser neuen Version, wenn auch nur, weil der 1.4.x Zweig bereits auf ihre geleistete Arbeit sehr gut, nicht zu erwähnen, dass noch ein wenig mehr Zeit auf Version bietet Anwendern ein Gefühl von Stabilität und Sicherheit.
Aber wenn ich lese, was geändert wurde und fügte hinzu, änderte ich meine Meinung sofort.
Die Änderungen in 1.5 sind beträchtlich, aber nicht so sehr in Funktionen, wie viel Arbeit hinter den Kulissen geschehen ist, insbesondere in Form Ajax-Entwickler, deren Änderungen zögern Sie nicht, rufen Sie epochal, nicht so sehr im Allgemeinen (was andere Frameworks nutzen bereits ausgesetzt sind Hier führen wir nun), aber für jQuery.
Wir sehen ein wenig genauer, was getan wurde.
Der Rahmen-Entwicklungsteam hat die meisten der Ajax API umgeschrieben bietet drei Möglichkeiten, um die Funktionalität zu erweitern $ Ajax ():. Die Vorfilter, der Wandler und transportiert
Ein Vorfilter ist eine Callback-Funktion aufgerufen werden, bevor die Ajax-Request tatsächlich gesendet wird, und, wie in der Dokumentation, vor allen Behandlungsmöglichkeiten von $. Ajax () selber.
Der Vorfilter wird aufgezeichnet mit $ AjaxPrefilter ().:
$. AjaxPrefilter (function (Optionen, originalOptions, jqXHR)
Ich werde erklären, was ein jqXHR, daran zu denken, wie ein Wrapper für jetzt mit einem XMLHttpRequest bereichert.
Das interessanteste Beispiel in der Dokumentation erläutert die mögliche Verwendung von Vor-zu einer bestehenden Option ändern
$. AjaxPrefilter (function (options) {
if (options.crossDomain) {
options.url = "http://miodominio.it/proxy/" + encodeURIComponent (options.url);
options.crossDomain = false;
}
});
Zu sagen, wenn die Option crossdomain den Anruf Proxy an den URL http://mydomain.net/proxy/ ist.
Und 'möglich, verwenden Sie $ AjaxSetup (), um sie weltweit zu registrieren.:
$. AjaxSetup ({
Wandler: {
"Miodatatype text": function (textValue) {
if (gültig (textValue)) {
/ / Hier wird die benutzerdefinierte Logik zu analysieren!
miodatatypeValue return;
Else {}
/ / Teilt einen Parser-Fehler
Exception werfen;
}
}
}
});
Oder rufen Sie direkt inline für jeden Anruf, dass es erfordert:
$. Ajax (url, {
dataType: "xml text miodatatype"
Wandler: {
"XML-Text": function (xmlValue) {
/ / Parse die Logik hier!
textValue return;
}
}
});
Der Grund am meisten Sinn, einen Konverter verwenden ist, dass es eine Möglichkeit, Ihre eigenen Datentypen dann als Rückgabetyp, das erste Beispiel verwendet definieren bietet, können wir verlangen, die Art miodatatype dies:
$. Ajax (url, {
dataType: "miodatatype"
});
Hinweis: Der Datentyp muss als Kleinbuchstaben Strings definiert werden.
Gäbe es genügend Konverter die Vor-und für die Gestaltung unserer AJAX-Anfragen, die Objekte sind Transporte gemacht, dass die Dokumentation letztes Mittel (was übersetzt als "nicht verwenden" oder mit "wenn man gezwungen, sie zu benutzen fühlen, sollten Sie vielleicht darüber nachdenken würde definiert Logik, die Sie verwenden ").
Doch die Transporte bieten zwei Funktionen: Senden und Abbruch und sollen mit Hilfe von $ werden AjaxTransport ()..
Hier ist die grundlegende Beispiel in der Dokumentation zur Verfügung gestellt:
$. AjaxTransport (function (Optionen, originalOptions, jqXHR) {
if (/ * transportCanHandleRequest * /) {
{Return
senden: function (Header, completeCallback) {
/ * Send Queue * /
}
Abbruch: function () {
/ * Abort-Code * /
}
};
}
});
und die Beschreibung der Parameter, die für Ihre Bequemlichkeit übersetzen:
die typische Struktur eines completeCallback ist wie folgt:
Funktion (Status, statusText, Antworten Header) {}
wo:
Wir haben beschrieben, was hinzugefügt wurde, um die Flexibilität des Moduls ajax erhöhen, aber für die gemeinsame Nutzung Ich finde es sehr interessant Kommentar über die Einführung von latenten, aber bevor Sie dies jqXHR definieren das neue Objekt, das aus der Ajax-Aufrufe zurückgegeben wird.
jqXHR Familie ist eine Obermenge des XMLHttpRequest-Objekts, das die Schnittstelle Versprechen, indem sie alle die Methoden, Eigenschaften und Verhaltensweisen durch ein Versprechen definiert implementiert:
Definition: A Promise ist eine Nur-Lese-Blick auf das Ergebnis einer Aufgabe und stellt den Wert der Abschluss der Transaktion zurück.
Weitere Informationen finden Sie hier .
| |
CSS (Kurs)
Web Design und Barrierefreiheit gemäß W3C CSS und XHTML. Ab 29 €. |
| |
HTML (Kurs)
Die Markup-Sprache für das Web ab 29 €. |
| |
Javascript (Course)
Ein vollständiger Reiseführer von Client-Side-Scripting. Von 39 €. |