..


Linki sponsorowane

Co nowego w jQuery 1.5

Artykuł napisany przez Riccardo Brambilla
Strona 1 z 3

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.

Revolution (i refaktoringu) formularza Ajax

$ Rozszerzenie. Ajax ()

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ów wstępnych

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.

Konwertery

Konwerter jest funkcja zwrotna wywoływana, gdy typ danych otrzymanych różni się od oczekiwań.

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.

Transport

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:

  1. opcje są opcje wniosku
  2. originalOptions opcje są przekazywane do metody, jak Ajax, nie modiifcate zdefiniowane domyślnie i bez ajaxSettings
  3. jqXHR jqXHR jest przedmiotem wniosku
  4. nagłówków i map klucz / wartość wniosku, że mogą być przekazywane, jeżeli transport wspiera
  5. completeCallback jest funkcja, która informuje o zakończeniu żądania ajax.

typowa struktura completeCallback jest w następujący sposób:

 



 Funkcja (status, statusText, odpowiedzi, nagłówki) {}

 
gdzie:
  1. stan jest kod stanu HTTP odpowiedzi, klasyczny 200, 404 ...
  2. statusText jest opis reakcji
  3. odpowiedzi jest opcjonalne mapę, która określa typ danych / wartość, która zawiera odpowiedź na wszystkie formaty akceptowane przez transport, na przykład: odpowiedź w postaci zwykłego tekstu: {text: TextData}
  4. nagłówki to opcjonalny ciąg znaków zawierający odpowiedzi dostarczonych przez XMLHttpRequest.getAllResponseHeaders nagłówki ()

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.

jqXHR

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 .

W tej samej kategorii ...
E-Learning
CSS (Kurs) CSS (Kurs)
Web Design i dostępności zgodnie z W3C CSS i XHTML. Począwszy od 29 €.
HTML (Kurs) HTML (Kurs)
Język znaczników dla sieci od 29 €.
Javascript (Kurs) Javascript (Kurs)
Kompletny przewodnik po stronie klienta skryptów. Od 39 €.
Linki sponsorowane