..
Jest kilka tygodni z wersją 1.5 naszego ukochanego jQuery, a następnie powrót po 1.5.1, w zasadzie tylko poprawki wersji pierwszej.
Mój pierwszy instynkt zaprowadził mnie do myślenia, że może poczekać jakiś czas wypuszczają nowe wydanie, choćby dlatego, że nie 1.4.x oddział prowadzi już swoją pracę bardzo dobrze, mówiąc, że pozostaje jeszcze trochę czasu na wersja daje użytkownikom poczucie stabilności i bezpieczeństwa.
Ale kiedy czytam, co zostało zmienione i dodane zmieniłem zdanie od razu.
Zmiany w wersji 1.5 są znaczne, ale nie tyle w funkcje, które są narażone na to, ile pracy zostało wykonane za kulisami, w szczególności w formie Ajax deweloperów, których zmiany nie wahaj się zadzwonić do epokowych, nie tyle w ogóle (co innych forach już korzystać Poniżej przedstawiamy teraz), ale dla jQuery.
Widzimy trochę bardziej szczegółowo, co zostało zrobione.
Ramach zespołu rozwój przepisany większość Ajax API zapewnia trzy sposoby na rozszerzenie funkcjonalności dolarów Ajax ():. Filtrów wstępnych, konwertery i transportuje
Filtr wstępny jest funkcja zwrotna wywoływana zanim wniosek ajax zostanie rzeczywiście wysłany, i, jak wyjaśniono w dokumentacji, przed przystąpieniem do możliwości leczenia przez $. Ajax () działa.
Filtr wstępny jest rejestrowana za pomocą $ AjaxPrefilter ().:
$. AjaxPrefilter (funkcja (opcje, originalOptions, jqXHR)
Wyjaśnię co jqXHR, traktować go jako wrapper teraz wzbogacona o XMLHttpRequest.
Najciekawszym przykładem w dokumentacji wyjaśnia możliwości stosowania filtrów wstępnych do modyfikacji istniejących opcji
$. AjaxPrefilter (funkcja (opcja) {
if (options.crossDomain) {
options.url = "http://miodominio.it/proxy/" + encodeURIComponent (options.url);
options.crossDomain = false;
}
});
Powiedzieć, czy opcja jest crossDomain połączenie jest przekierowywane do http://mydomain.net/proxy/ URL.
I "można użyć $ AjaxSetup () do rejestracji globalnie.:
$. AjaxSetup ({
konwertery: {
"Text Miodatatype": function (textValue) {
if (ważne (textValue)) {
/ / Tutaj zwyczaj logiki do analizy!
miodatatypeValue powrotu;
Else {}
/ / Powiadamia błąd analizy
rzucić wyjątek;
}
}
}
});
Lub zadzwoń bezpośrednio inline dla każdego połączenia, które wymaga:
$. Ajax (url, {
dataType: "xml tekst miodatatype"
konwertery: {
"Text XML": function (xmlValue) {
/ / Parse logiki tutaj!
textValue powrotu;
}
}
});
Powodem najbardziej sensowne jest stosowanie konwertera jest to, że to sposób na zdefiniowanie własnych typów danych następnie wykorzystywane jako typ zwracany, np. pierwszy, możemy zwrócić się do miodatatype wpisz:
$. Ajax (url, {
dataType: "miodatatype"
});
Uwaga: typ danych musi być zdefiniowany jako małe struny.
Gdyby nie było wystarczająco konwertery filtrów wstępnych i do kształtowania naszego ajax żądania, obiekty udostępniane są transporty, że dokumentacja określa ostateczny (co tłumaczymy jako "nie używaj" lub "jeśli czują się zmuszeni do korzystania z nich, być może warto zastanowić się nad logiczne, że używasz ").
Jednak transport zapewnia dwie funkcje: wysyłanie i przerwać i powinny być rejestrowane za pomocą $ AjaxTransport ()..
Oto prosty przykład podane w dokumentacji:
$. AjaxTransport (funkcja (opcje, originalOptions, jqXHR) {
if (/ * transportCanHandleRequest * /) {
{Return
wysłać: function (nagłówki, completeCallback) {
/ * Wyślij * kolejka /
}
abort: function () {
/ * Przerwij kod * /
}
};
}
});
i opis parametrów, które przekładają się dla wygody:
typowa struktura completeCallback jest w następujący sposób:
Funkcja (status, statusText, odpowiedzi, nagłówki) {}
gdzie:
Opisaliśmy, co zostało dodane do zwiększenia elastyczności modułu ajax, ale dla wspólnego wykorzystywania Uważam to za bardzo ciekawy komentarz w sprawie wprowadzenia odroczona, ale zanim to uczynił, jqXHR zdefiniować nowy obiekt, który wrócił z rozmowy ajax.
rodziny jqXHR jest nadzbiorem obiektu XMLHttpRequest, który implementuje interfejs Promise poprzez wszystkie metody, właściwości i zachowania określonych przez Promise:
Definicja: A Promise jest tylko do odczytu względu na wynik zadania i reprezentuje wartość zwracana przez zakończenie transakcji.
Więcej informacji można znaleźć tutaj .
| |
CSS (Kurs)
Web Design i dostępności zgodnie z W3C CSS i XHTML. Począwszy od 29 €. |
| |
HTML (Kurs)
Język znaczników dla sieci od 29 €. |
| |
Javascript (Kurs)
Kompletny przewodnik po stronie klienta skryptów. Od 39 €. |