Ajax w jQuery 1.5

ajax15-title.jpg

Do przedstawienia nowej wersji jQuery minęło już kilka dni, więc myślę że czas napisać parę słów o zmianach jakie nastąpiły w tej bibliotece. Oczywiście standardowo poprawiono wydajność i usunięto wiele błędów z poprzednich wersji. Poza tym dodano funkcjonalność nazwaną Deferred Objects, o której szczegółowo napiszę w osobnym artykule, gdyż zdecydowanie ten obiekt wart jest dokładnego omówienia. W tym wpisie zajmiemy się inną istotną zmianą, czyli metodą ajax.

Należy zacząć od tego, iż moduł ajax został całkowicie przepisany od nowa. W związku z tym postanowiono lepiej przemyśleć i unowocześnić ten moduł. Myślę, że najważniejszą informacją jest to, iż obecna implementacja jest kompatybilna wstecz i w większości przypadków nie wymaga przepisywania wcześniej wykorzystanego kodu. Oczywiście nie można tego samego powiedzieć o pluginach, które w wielu przypadkach trzeba pobrać jeszcze raz, jeżeli autorzy zaktualizowali swój kod.

Pierwszą zmianą jest zawracanie przez metodę $.ajax() obiektu o nazwie jQuery XMLHttpRequest (jqXHR), który ma stanowić spójny interfejs do komunikacji z serwerem i dobierać optymalny sposób transportu danych. Przykładowe wywołanie funkcji $.ajax() wygląda teraz tak:

var jqxhr = $.ajax({ url: "showtable.php" });

Jak widać samo wywołanie wygląda identycznie, ale teraz posiadamy już obiekt jqxhr na którym możemy pracować i korzystać z niego nawet po wywołaniu kilku innych operacji.

Kolejną ciekawą zmianą jest wykorzystanie nowości jakie zostały nam dostarczone w jQuery 1.5 czyli zaimplementowano interfejs Deferred Objects, dzięki temu do naszej dyspozycji zostały dodane wszystkie możliwość wzorca projektowego o nazwie Promise. Dodatkowo dla zachowania spójności otrzymaliśmy 3 dodatkowe metody znajdujące się w obiekcie jqXHR: success, error, complete. Łatwo można zauważyć są to standardowe metody typu callback, tylko teraz możemy je wykonać poza definicją metody $.ajax(). Dla przykładu tak wyglądało to przed wersją 1.5:

$.ajax({
  url: "showtable.php",
  success: function(data) { alert("success"); },
  error: function(data) { alert("error "); }
});

a tak to wygląda teraz:

var jqxhr = $.ajax({ url: "showtable.php" })
.success(function() { alert("success"); })
.error(function() { alert("error"); }); 

// tutaj dowolny kod 

// ponowne wykorzystanie obiektu jqxhr
jqxhr.complete(function(){ alert("complete"); });

Warto również wspomnieć, iż od wersji jQuery 1.5 twórcy biblioteki umożliwili rozszerzanie metody Ajax. Sądzę, że ta funkcjonalność przyda się bardzo nie wielu osobom, ale warto przeczytać i wiedzieć o istnieniu takiej możliwości.

Jak widać powyżej zmiany są znaczące, pozostaje poczekać na propozycje ciekawego wykorzystania nowych funkcjonalności. A może macie już jakieś pomysły jak zaimplementujecie metodę Ajax w swoich nowych projektach? Zapraszam do komentowania.

Dodaj komentarz Komentarze są moderowane, a przy linkach używane jest rel="nofollow". Prosimy o nie reklamowanie i nie spamowanie w komentarzach.
Linki tworzone za pomocą tagu [url] np: [url=www.xyz.pl]xyz[/url]
Źródła za pomoc tagu [code] z wskazaniem języka np. [code=php] echo [/code]

Copyright © 2024 Webnote

Projekt i wykonanie: Tworzenie stron internetowych

Dodaj link