Najnowsza wersja jQuery w CDN Google

103

Przeczytałem w oficjalnym dokumencie Google CDN, że to jest srcjQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

Jednak denerwujące jest zmienianie srcodwołania do jQuery przy każdej aktualizacji wersji.

Odkryłem, że jeśli ustawię wersję na, 1to Google zwraca najnowszą wersję jQuery.

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
/*! jQuery v1.8.2 jquery.com | jquery.org/license */

Czy to właściwa decyzja? Czy istnieje oficjalny adres URL do najnowszej wersji jQuery hostowanej w Google CDN?

Martin Borthiry
źródło
sprawdź, czy ten post jest starszy. Tak więc drugi to duplikat
Martin Borthiry
1
To jest duplikat stackoverflow.com/questions/441412/… (zapytany 14 stycznia 2009 r.)
Nick Pierpoint,
1
@MartinBorthiry To niekoniecznie ma znaczenie
Blazemonger

Odpowiedzi:

182

AKTUALIZACJA 03.07.2014: Obecnie jquery-latest.jsnie jest już aktualizowana. Z bloga jQuery :

Wiemy, że http://code.jquery.com/jquery-latest.js jest nadużywany ze względu na statystyki CDN pokazujące, że jest to najpopularniejszy plik. Nie miałoby to miejsca, gdyby programista był używany tylko do tworzenia kopii lokalnej.

Zdecydowaliśmy się zaprzestać aktualizacji tego pliku, a także zminimalizowanej kopii, zachowując oba pliki w wersji 1.11.1 na zawsze.

Zespół Google CDN dołączył do nas, aby zapobiec nieumyślnemu przerwaniu dostępu do sieci i nie aktualizuje już pliku pod adresem http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js . Ten plik pozostanie również zablokowany w wersji 1.11.1.

Następująca, obecnie dyskusyjna, odpowiedź została tutaj zachowana ze względów historycznych.


Nie rób tego. Poważnie, nie.

Łączenie z głównymi wersjami jQuery działa, ale to zły pomysł - z każdą aktualizacją dziesiętną dodawane i wycofywane są całe nowe funkcje. Jeśli zaktualizujesz jQuery automatycznie bez CAŁKOWITEGO testowania kodu , ryzykujesz nieoczekiwaną niespodzianką, jeśli API dla jakiejś krytycznej metody ulegnie zmianie.

Oto, co powinieneś zrobić: napisz swój kod przy użyciu najnowszej wersji jQuery. Przetestuj, zdebuguj i opublikuj, gdy będzie gotowy do produkcji.

Następnie, gdy pojawi się nowa wersja jQuery, zadaj sobie pytanie: czy potrzebuję tej nowej wersji w moim kodzie? Na przykład, czy istnieje jakaś krytyczna zgodność przeglądarki, która wcześniej nie istniała, czy też przyspieszy mój kod w większości przeglądarek?

Jeśli odpowiedź brzmi „nie”, nie przejmuj się aktualizacją kodu do najnowszej wersji jQuery. Może to nawet dodać do kodu NOWE błędy, które wcześniej nie istniały . Żaden odpowiedzialny programista nie dołączyłby automatycznie nowego kodu z innej witryny bez dokładnego przetestowania go.

Po prostu nie ma dobrego powodu, aby ZAWSZE używać najnowszej wersji jQuery. Stare wersje są nadal dostępne w sieciach CDN, a jeśli działają do twoich celów, to po co je zastępować?


Drugorzędną, ale być może ważniejszą kwestią jest buforowanie. Wiele osób łączy się z jQuery w CDN, ponieważ wiele innych witryn tak robi, a Twoi użytkownicy mają duże szanse, że ta wersja jest już buforowana.

Problem polega na tym, że buforowanie działa tylko wtedy, gdy podasz pełny numer wersji . Jeśli podasz częściowy numer wersji, buforowanie w odległej przyszłości nie nastąpi - ponieważ gdyby tak było, niektórzy użytkownicy otrzymaliby różne pomniejsze wersje jQuery z tego samego adresu URL. (Powiedzmy, że link do 1.7 wskazuje 1.7.1 jednego dnia i 1.7.2 następnego dnia. W jaki sposób przeglądarka upewni się, że dziś pobiera najnowszą wersję? Odpowiedź: bez buforowania).

W rzeczywistości jest to zestawienie kilku opcji i ich ustawień wygaśnięcia ...

http://code.jquery.com/jquery-latest.min.js (bez pamięci podręcznej)

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js (1 godzina)

http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js (1 godzina)

http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js (1 rok)

Tak więc, łącząc się w ten sposób z jQuery, w rzeczywistości eliminujesz jeden z głównych powodów, dla których warto używać CDN.


http://code.jquery.com/jquery-latest.min.js może też nie zawsze zapewniać oczekiwaną wersję. W chwili pisania tego tekstu zawiera on odsyłacz do najnowszej wersji jQuery 1.x, mimo że jQuery 2.x również został wydany. Dzieje się tak, ponieważ jQuery 1.x jest kompatybilny ze starszymi przeglądarkami, w tym IE 6/7/8, a jQuery 2.x nie . Jeśli chcesz mieć najnowszą wersję jQuery 2.x, to (na razie) musisz to wyraźnie określić.

Obie wersje mają ten sam interfejs API, więc nie ma różnicy percepcyjnej dla kompatybilnych przeglądarek. Jednak jQuery 1.x to większe pobieranie niż 2.x.

Blazemonger
źródło
Dziękuję za punkt widzenia, ale w moim przypadku lepiej skorzystać z najnowszej wersji. jednak częściowo zgadzam się z twoją opinią, ale jakaś nowa wersja naprawia również stare błędy. Ponadto najnowsza wersja ma większe prawdopodobieństwo, że znajdzie się w pamięci podręcznej, co jest jedną z zalet CDN.
Martin Borthiry
2
dobrym przykładem tego jest rozwijanie w jquery <1.4, a następnie aktualizacja do wersji 1.4. Wprowadzono zmiany w dostępie do właściwości i sposobie obsługi danych JSON przez żądania AJAX w wywołaniu zwrotnym.
scrappedcola
tylko dla wyjaśnienia ... Poprosiłem o jedną stronę, która używa trywialnej części jquery ... Rozumiem twój dobry punkt widzenia, ale chcę tylko wiedzieć, czy Google oferuje adres URL umożliwiający pobranie najnowszej wersji.
Martin Borthiry
4
@scrappedcola - jQuery 1.9 również wprowadził wiele istotnych zmian. Przez lata napotkałem wiele błędów z powodu problemów z kompatybilnością wsteczną w jQuery. I absolutnie zgadzam się z radą Blazemongera. W żadnym wypadku nie należy po prostu wskazywać adresu URL „najnowszego jQuery”. Byłbyś zdany na całkowitą łaskę zespołu jQuery, a nowa wersja jQuery mogłaby łatwo zepsuć Twoją witrynę. Nie tylko może się to zdarzyć, ale prawdopodobnie nastąpi to w pewnym momencie.
Steve Wortham
miło jest dowiedzieć się, że buforowanie jest oparte na poziomie szczegółowości wersji!
Tadas V.
8

Nie wiem, czy / gdzie została opublikowana, ale możesz uzyskać najnowszą wersję, pomijając numer pomocniczy i numer kompilacji.

Najnowsze 1.8.x:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>

Najnowsze 1.x:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

Pamiętaj jednak, że te linki mają znacznie krótszy czas przechowywania w pamięci podręcznej niż w przypadku pełnego numeru wersji, więc użytkownicy mogą pobierać je częściej, niż chcesz. Aby uzyskać więcej informacji, zobacz kluczowe .0 w odniesieniach Google CDN do jQuery 1.x.0 .

jrummell
źródło
1
Alternatywnie możesz pobrać najnowszą wersję z code.jquery.com/jquery.min.js, która zwykle jest aktualizowana na kilka dni przed innymi cdns
Kevin B
Chociaż możesz w ten sposób pobrać najnowszą wersję 1.8.x, nie możesz pobrać najnowszej wersji 1.9 ani żadnego numeru wersji podrzędnej za pomocą podobnych linków. Ponadto łącze „najnowsze 1.x” wskazuje obecnie na wersję 1.11.1, podczas gdy w rzeczywistości najnowsza wersja to 1.11.3.
Blazemonger
@Blazemonger Zgadza się. Zmieniło się to po tym, jak odpowiedziałem na to. Masz świetne wyjaśnienie w swojej aktualizacji!
jrummell
8

Jeśli chcesz używać sieci CDN jQuery innej niż biblioteka jQuery hostowana przez Google, możesz rozważyć skorzystanie z tego i upewnienie się, że używa najnowszej wersji jQuery:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
Abdul Munim
źródło
To podciągnęło 1.9.1 zamiast 2.0
Phillip Senn
3
Wersja 2.x nie jest zgodna z wersją 1.x. Każda witryna, która wskazuje na ten adres URL, faktycznie zepsuje strony, jeśli zostanie zaktualizowana do wersji 2
Abdul Munim
2

Aby korzystać z najnowszej wersji jquery hostowanej przez Google

Ludzie:

  1. https://developers.google.com/speed/libraries/#jquery

  2. Pobierz fragment:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

  1. Umieść to w swoim kodzie.
  2. Upewnij się, że działa.

Boty:

  1. Poczekaj, aż zrobi to człowiek.
Bob Stein
źródło