jQuery 2.0 – krótko o zmianach w (nie tak) nowej wersji biblioteki


18 października 2013 / Michał Załęcki


Od wpisu informującego o nowej wersji biblioteki jQuery na oficjalnym blogu mija dokładnie pół roku. Mimo tego, gdyby zrobić badanie ile popularnych serwisów korzysta z wersji jQuery oznaczonej dwójką to wydawało by się, że developerzy są trochę leniwi z wdrażaniem „nowości”. Prawda jak zwykle leży gdzieś po środku, gdyż jQuery od wersji 2.0 pożegnała się ze wsparciem dla IE 6/7/8. Zanim jednak co niektórzy z Was zaczną przeklinać pod nosem zespół jQuery wyjaśnię, że gałąź 1.x nadal będzie rozwijana tak by zapewnić, w miarę możliwości, jak najlepsze wsparcie również tym trzem przestarzałym przeglądarkom. Pozostawienie starych IE samym sobie w jQuery 2.0 jest właśnie powodem nowej numeracji, co do tego nikt raczej nie ma wątpliwości.

Sprytne dodawanie jQuery w zależności od klienta

Możemy oczywiście dobrać odpowiednią wersje biblioteki jQuery do przeglądarki użytkownika. Twórcy proponują rozwiązanie oparte o tagi warunkowe.

Zainspirowany tym rozwiązaniem stworzyłem trochę bardziej rozbudowaną i uwzględniającą pobieranie biblioteki z serwerów Google z zabezpieczeniem się przed ewentualnymi problemami:

Migracja

Twórcy zadbali o to by bezboleśnie przejść na nową wersje biblioteki i udostępniają plugin pozwalający na łatwą migrację.

Zgodność, rozmiar i jeszcze raz rozmiar!

Brak wsparcia dla IE 6/7/8, o którym już wcześniej wspomniałem, może wpłynąć na IE9, a nawet na jeszcze nowsze wersje Internet Explorer za sprawą trybu „widok zgodności”. Aby się przed tym ustrzec nie potrzebujemy na szczęście żadnych specjalnych trików, o wątpliwej skuteczności (do czego przyzwyczaił nas kiedyś MS). Podobno wystarczy skromne <!DOCTYPE>, ale nie zaszkodzi też tag X-UA-Compatible, a niektórzy z nas będą spać spokojniej:

Brak wsparcia dla przestarzałych IE w najnowszej wersji jQuery nie (tylko) jest wynikiem frustracji developerów czy wyrazem buntu przeciwko internautom, którzy przespali ostatnie dziesięciolecie. Zmiany te podyktowane zostały zmniejszeniem rozmiaru biblioteki o 12-15%. Osobiście nawet te 15% jakoś mnie nie przekonuje na tyle by zaryzykować problemy z naszymi „ulubionymi” przeglądarkami, no ale przynajmniej jest z czego wybierać.

Changelog

Jako, że zabawa w „Ctrl+C, Ctrl+V” nie ma większego sensu odsyłam Was do changelogów:

Warto przy tym zwrócić uwagę, że różnice między samym pisaniem kodu z wykorzystaniem jQuery 1.x, a 2.x, przynajmniej na dzień dzisiejszy, są tak nieduże, że większa część zmian jest wspólna dla obu wersji.

Podsumowanie

Nie zachęcam do korzystania z jQuery 2.0, ale też nie odradzam. Skoro masz już jakieś pojęcie o różnicach decyzję pozostawiam Tobie. Wiem, że są osoby, które w epoce LTE i światłowodów nadal walczą o każde zapytanie do serwera i każdy KB więc myślę, że z nieskrywaną przyjemnością przechodzić będą powoli na gałąź 2.x, jednak sam pozostanę przy 1.x i od czasu do czasu uruchomię emulacje starszych wersji Internet Explorer. Warto też przypomnieć, że jQuery jest też wykorzystywana w celach „non-web-site” do pisania aplikacji czy różnej maści pluginów i dodatków, tam gałąź 2.x jest zdecydowanie lepszym wyborem.



5 odpowiedzi na “jQuery 2.0 – krótko o zmianach w (nie tak) nowej wersji biblioteki”

  1. Piotr Nalepa pisze:

    Dla niezorientowanych. Kiedy można bez problemu korzystać z najnowszej wersji jQuery z gałęzi 2.x?
    Wtedy, gdy tworzymy aplikacje na SmartTV, Windows 8 lub zaawansowane aplikacje JS na których można wymusić dostosowanie się do wymagań producenta (programistów).

  2. Comandeer pisze:

    Prawda jest taka, że jeśli chciałbym urwać te 15% z jQuery, to po prostu wziąłbym Zepto ;) albo wgl poszedł w nurt zaproponowany przez ShurikenJS. IMO rozwijanie natywnych przy choćby aplikacjach desktopowych jest najlepsze (i najszybsze). chociaż jQuery ma to coś – tą wygodę, którą w natywnych raczej się nie osiągnie

    ja korzystam z jQuery 2 z powodów ideologicznych – stwierdziłem, że nie ma sensu martwić się o IE<9 jeśli główna funkcjonalność opiera się o FileReader API ;)

    co do trybu zgodności w IE: ja raczej polecałbym nagłówek niźli tag: https://github.com/h5bp/html5-boilerplate/blob/master/doc/html.md#x-ua-compatible

    • Idąc tym tropem, może doczekamy się Zepto 2.0 :P Co do nagłówka to całkowicie się zgodzę. Nie wspomniałem, gdyż wiele osób widząc .htaccess szybko ucieka, a nie to było jakby priorytetem. Dla zainteresowanych, będzie to wyglądało mniej więcej tak:

      Header set X-UA-Compatible „IE=edge”

      Header unset X-UA-Compatible

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.