Jaka jest różnica między wersją jQuery 1, wersją 2 i wersją 3? [Zamknięte]

114

Niedawno natknąłem się na webchart.jsprojekt strony przy użyciu jQuery w wersji 2 i używam jQuery w wersji 1.

Aby kod działał, sprawdź, czy używa teraz najnowszej wersji, a następnie sprawdziłem rdzeń obsługi jQuery i wydali jQuery 3.

Myślę teraz o użyciu wersji 3, ale szukam, czy wersja 3 ma problemy ze zgodnością, czy może być używana tylko na określonych urządzeniach.

zero8
źródło

Odpowiedzi:

250

Główne wersje

Wersja 1.0: Pierwsza stabilna wersja.
Wersja 2.0: Wypada IE 6-8 wsparcie dla poprawy wydajności i zmniejszenia Wielkość pliku
Wersja 3.0: obiecuje / A + wsparcie dla Deferreds, $.ajaxi $.when, .data()HTML5 zgodny

Wszystkie wersje

+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+
| Version Number |    Release Date    |       Latest Update        | Size Prod (KB) |                                   Additional Notes                                    |
+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+
| 1.0            | August 26, 2006    |                            |                | First stable release                                                                  |
| 1.1            | January 14, 2007   |                            |                |                                                                                       |
| 1.2            | September 10, 2007 | 1.2.6                      | 54             |                                                                                       |
| 1.3            | January 14, 2009   | 1.3.2                      | 55.9           | Sizzle Selector Engine introduced into core                                           |
| 1.4            | January 14, 2010   | 1.4.4                      | 76             |                                                                                       |
| 1.5            | January 31, 2011   | 1.5.2                      | 83             | Deferred callback management, ajax module rewrite                                     |
| 1.6            | May 3, 2011        | 1.6.4                      | 89             | Significant performance improvements to the attr() and val() functions                |
| 1.7            | November 3, 2011   | 1.7.2 (March 21, 2012)     | 92             | New Event APIs: .on() and .off(), while the old APIs are still supported.             |
| 1.8            | August 9, 2012     | 1.8.3 (November 13, 2012)  | 91.4           | Sizzle Selector Engine rewritten, improved animations and $(html, props) flexibility. |
| 1.9            | January 15, 2013   | 1.9.1 (February 4, 2013)   | 90             | Removal of deprecated interfaces and code cleanup                                     |
| 1.10           | May 24, 2013       | 1.10.2 (July 3, 2013)      | 91             | Incorporated bug fixes and differences reported from both the 1.9 and 2.0 beta cycles |
| 1.11           | January 24, 2014   | 1.11.3 (April 28, 2015)    | 95.9           |                                                                                       |
| 1.12           | January 8, 2016    | 1.12.4 (May 20, 2016)      | 95             |                                                                                       |
| 2.0            | April 18, 2013     | 2.0.3 (July 3, 2013)       | 81.1           | Dropped IE 68 support for performance improvements and reduction in filesize         |
| 2.1            | January 24, 2014   | 2.1.4 (April 28, 2015)     | 82.4           |                                                                                       |
| 2.2            | January 8, 2016    | 2.2.4 (May 20, 2016)       | 85.6           |                                                                                       |
| 3.0            | June 9, 2016       | 3.0.0 (June 9, 2016)       | 86.3           | Promises/A+ support for Deferreds, $.ajax and $.when, .data() HTML5-compatible        |
| 3.1            | July 7, 2016       | 3.1.1 (September 23, 2016) | 86.3           | jQuery.readyException added, ready handler errors are now not silenced                |
| 3.2            | March 16, 2017     | 3.2.1 (March 20, 2017)     | 84.6           | Hotfixes for regressions that were introduced in the 3.2.0                            |
| 3.3            | January 19, 2018   | 3.3.1 (January 20, 2018)   | 84.8           | Deprecation of old function calls, functions that accept classes now support them     |
|                |                    |                            |                | defined in an array                                                                   |
| 3.4            | April 10, 2019     | 3.4.1 (May 1, 2019)        | 86.1           | Performance improvements, nonce and nomodule support, fixes for radio elements, a     |
|                |                    |                            |                | minor security fix                                                                    |
| 3.5            | April 10, 2020     | 3.5.1 (May 4, 2020)        | 87.4           | Security fixes, .even() & .odd() methods, jQuery.trim deprecated                      |
+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+

Źródła: https://en.wikipedia.org/wiki/JQuery#Release_history

Szczegółowe wyjaśnienie głównych wersji

Wersja 1.0 była pierwszym stabilnym wydaniem jQuery. Ta wersja obsługuje starsze przeglądarki internetowe, które nie są już obsługiwane przez odpowiednich programistów. Jeśli spodziewasz się dużej liczby odwiedzających ze starszymi przeglądarkami internetowymi, z pewnością będzie to odpowiednia wersja.

Wersje 2.0 porzuciły obsługę Internet Explorera 6-8, aby zwiększyć ogólną wydajność jQuery i zmniejszyć rozmiar plików biblioteki. W prostych słowach: wersja 2.0 jest szybsza i ma mniejszy rozmiar plików niż wersja 1.0, ale nie obsługuje już starszych przeglądarek internetowych. Ponieważ Microsoft zrezygnował ze wsparcia dla Windows XP, można rozsądnie założyć, że Twoi goście będą używać przeglądarki zgodnej z wersją 2.0, chyba że wcześniej wiesz, że tak się nie stanie (patrz wersja 1.0).

Wraz z wydaniem wersji 3.0 obie wersje 1.11.1 i 2.1.1 zostaną zaktualizowane do jQuery Compat 3.0 i jQuery 3.0. jQuery Compat 3.0 będzie nadal obsługiwał starsze przeglądarki, takie jak Internet Explorer 8, podczas gdy zwykła wersja 3.0 będzie obsługiwać tylko wiecznie zielone przeglądarki (bieżącą i poprzednią wersję określonej przeglądarki).

Wraz z wydaniem wersji 3.0 nie ma powodu, aby trzymać się wersji 1.0 lub 2.0. Kilka uwag z oficjalnego bloga jQuery:

  • Jeśli potrzebujesz obsługi najszerszej gamy przeglądarek, w tym IE8, Opera 12, Safari 5 i podobnych, użyj pakietu jQuery-Compat 3.0.0. Zalecamy tę wersję dla większości witryn internetowych, ponieważ zapewnia najlepszą kompatybilność dla wszystkich odwiedzających witrynę.
  • Jeśli Twoja witryna jest zbudowana tylko dla najnowocześniejszych przeglądarek lub jest aplikacją opartą na HTML zawartą w widoku sieciowym (na przykład PhoneGap lub Cordova), w którym wiesz, które silniki przeglądarek są używane, wybierz pakiet jQuery 3.0.0 .
  • Dopóki nie ogłosimy inaczej, oba pakiety będą zawierać te same publiczne API w odpowiednio ponumerowanych wersjach głównych i pomocniczych. Powinno to ułatwić programistom przełączanie się między nimi i być maksymalnie kompatybilne z wtyczkami jQuery innych firm.

Źródła: https://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/

icecub
źródło
6
Uwaga dla użytkowników ASP.NET 4.0: jQuery 3.x przerywa ogłaszanie zwrotne. jquery.com/upgrade-guide/3.0/…
Jared Thirsk
2
Czy ta odpowiedź jest naprawdę dokładna? O ile się dowiedziałem, jQuery Compat 3.0 nie jest nawet dostępny w więcej niż wersji alfa.
HischT,
2
@HischT Referencje są dostarczane wraz z odpowiedzią. Część, o której mówisz, jest nawet trochę skopiowana z własnego wpisu na blogu jQuery na ten temat. Nie wiem, jak dokładne chcesz, ale zapewniam, że nie będzie to lepsze niż posiadanie źródła jako odniesienia. Spójrz także na datę tej odpowiedzi. To było ponad 2 lata temu. Dokładam wszelkich starań, aby na bieżąco aktualizować te informacje o nowe wersje, ale to wszystko. Jeśli uważasz, że można coś ulepszyć, edytuj odpowiedź i poddaj ją ocenie przeze mnie lub społeczność.
icecub
2
@icecub Proszę zauważyć, że mój komentarz został sformułowany jako pytanie, a nie jako prawdziwy fakt, ponieważ nie jestem tego w 100% pewien. Właśnie próbowałem pobrać lub nawet znaleźć jakiekolwiek informacje o jQuery Compat 3 i nie mogę znaleźć żadnych więcej informacji niż ten post na blogu, do którego się odnosisz, ani jego dodatkowej wersji alfa. Wydaje mi się, że porzucili jQuery Compat 3 tuż przed uruchomieniem. Jeśli ktoś może udowodnić mi, że się mylę, będę bardzo szczęśliwy, ponieważ chciałbym użyć jQuery Compat 3 w moim projekcie.
HischT,
6
Kompatybilność z Jquery została anulowana przed wydaniem na początku 2016 roku po tym, jak MS porzuciło obsługę IE8-10. blog.jquery.com/2016/01/14/jquery-3-0-beta-released
Dan Is Fiddling By Firelight