Dlaczego WordPress używa przestarzałej wersji jQuery 1.2.12?

25

Podczas sprawdzania kodu źródłowego zauważyłem, że WordPress używa jQuery v1.12.4. Dlaczego WordPress korzysta z tej przestarzałej wersji jQuery?

Sandun
źródło
1
Odpowiedź jest bardzo prosta: WP chce zachować kompatybilność wsteczną ze starszymi przeglądarkami. WP ma wystarczającą liczbę użytkowników, którzy nadal potrzebują wsparcia IE8, aby nie mogli go jeszcze upuścić.
Simba,

Odpowiedzi:

32

Istnieje wiele motywów i wtyczek korzystających z jQuery ładowanych przez rdzeń WP. Za każdym razem, gdy jQuery jest aktualizowany, istnieje ryzyko uszkodzenia starszych motywów i wtyczek (ponieważ wiele z nich jest nadal używanych, ale nie jest już aktualizowanych). Dlatego też widzisz jquery-migrate.jsw swoim kodzie źródłowym. Jest to skrypt, który przechwytuje stare funkcje używane przez wtyczki / motywy i upewnia się, że nadal działają w nowszych wersjach jQuery.

Przejście do 3.xrodziny jQuery spowodowałoby uszkodzenie wielu wtyczek / motywów, ponieważ nie można mieć skryptu migracji dla wszystkiego, co jest przestarzałe. Właśnie dlatego 1.xwciąż rozwijano nowe wersje rodziny, podczas gdy rodziny 2.xi 3.xjuż istniały. Nie będzie nowych 1.xi 2.xwersji po 1.12i 2.2, z wyjątkiem łatek (bezpieczeństwa). Chociaż jQuery 1.12nie jest obecnie nieaktualny, będzie w najbliższej przyszłości.

WordPress jest w związku. Jeśli nie zaktualizuje się do wyższej wersji jQuery, nie będzie w stanie nadążyć za nowymi możliwościami. Jeśli jednak nastąpi aktualizacja, starsze witryny ulegną awarii. Najbardziej prawdopodobnym rezultatem jest to, że WP zaczeka kilka lat, więc starsze motywy / wtyczki i tak zostaną wycofane, a następnie przejdą do 3.xrodziny .

Wyjaśnienie

Powyższe może sugerować, że migracja z 1.xwersji do 3.xnie jest w rzeczywistości możliwa. To nieprawda. To tylko trochę skomplikowane. Sztuczka polega na tym, aby najpierw uaktualnić 1.12, debugować wynik za pomocą starszego skryptu migracji, a następnie dodać 3.0skrypt migracji, który działa 1.12. Szczegółowe instrukcje tutaj .

Aktualizacja bezpieczeństwa

Programiści zauważą, że Google Dev Tools / Lighthouse zgłasza witryny WordPress jako podatne na atak ze względu na obecność tej starszej wersji jQuery - a przynajmniej tak się wydaje. W efekcie wszystko, co robi Lighthouse, polega na sprawdzeniu, czy w bibliotece znajdują się luki wymienione w bazie danych luk Snyk . Jeśli sprawdzisz to szczegółowo, przekonasz się, że wersja 1.12.4 jest czysta. Biorąc pod uwagę szerokie zastosowanie 1.12.4, możesz liczyć na szybkie usunięcie poważnej luki w zabezpieczeniach.

cjbj
źródło
4
Aby dodać trochę dodatkowych informacji - zarówno jQuery 1.x, jak i 2.x były aktywnie aktualizowane do maja tego roku, różnica między nimi polegała na tym, że 1.x był kompatybilny z IE8, a 2.x usunęło łatki i poprawki dla tych błędnych przeglądarek. 3.x to nowa wersja, która idzie o krok dalej, zmieniając różne interfejsy, aby były zgodne z „oficjalnymi” interfejsami HTML5 / JavaScript (tj. Tam, gdzie działało to w ten sam sposób, rzeczy stały się standardowe po tym, jak jQuery miał własne wersje robiąc to samo).
Rycochet,
23
  • To nie jest przestarzałe
  • Przejście do wersji 2.x lub 3.x jest za wcześnie, ludzie nadal używają IE8, który jest obsługiwany tylko w wersji 1.x
Nabil Kadimi
źródło
2
@LightnessRacesinOrbit Zgadzam się, ale z mojego doświadczenia wynika, że ​​to pytanie jest trafne w odniesieniu do średniego kalibru programisty WP.
MonkeyZeus
7
Aktualizacja na styczeń 2018 r .: Pomysł, że jest on przestarzały, mimo że jest domyślnie dołączany do WordPress, nie jest już „nonsensem”. Luki XSS zostały zidentyfikowane w wersji 1.12.4, a gałąź 1.x nie otrzymuje już aktualizacji. Zalecane rozwiązanie to aktualizacja do jquery 3.x snyk.io/test/npm/jquery/…
squarecandy
2
Również podczas korzystania z Lighthouse Google informuje, że wersja 1.12.4 zawiera znane luki w zabezpieczeniach, więc nie powinieneś jej używać.
phpheini
4
Obsługa IE8, której Microsoft nawet nie robi, jest w tym momencie nieodpowiedzialna. Utrzymuje ludzi korzystających z przestarzałej przeglądarki z problemami bezpieczeństwa. Jeśli ktoś używa IE8, musi się zatrzymać.
David A. French
1
@ DavidA.French I sekundę ruchu. Twórcy muszą ZATRZYMAĆ zakwaterowanie dla użytkowników, którzy odmawiają aktualizacji. Był czas, kiedy wszyscy dążyli do całkowitej kompatybilności w każdej znanej możliwej przeglądarce, a te złe nawyki nadal się utrzymują. Być może, gdy przestaną dla nich działać strony internetowe, osoby te zaktualizują się do nowoczesnej przeglądarki. W tym momencie, jeśli nie korzystasz z najnowszej wersji jednej z głównych przeglądarek (IE i AOL wcale się nie liczą), Internet nie powinien się dla ciebie zginać. Szczerze mówiąc IE8? Jesteś mniej niż 1% internetu, [mówione w AOL] „Do widzenia”
KFish