Perché WordPress utilizza jQuery v1.12.4 obsoleto?


25

Durante il controllo del codice sorgente, ho visto che WordPress utilizza jQuery v1.12.4. Perché WordPress utilizza questa versione obsoleta di jQuery?


1
La risposta è molto semplice: WP vuole mantenere la retrocompatibilità con i browser più vecchi. WP ha abbastanza utenti che hanno ancora bisogno del supporto IE8 che non possono ancora rilasciarlo.
Simba

Risposte:


32

Esistono molti temi e plugin che utilizzano jQuery come caricati dal core WP. Ogni volta che jQuery viene aggiornato, esiste il rischio che i temi e i plug-in meno recenti vengano interrotti (poiché molti di essi vengono ancora utilizzati ma non più aggiornati). Ecco perché vedi anche jquery-migrate.jsnel tuo codice sorgente. È uno script che cattura le vecchie funzioni utilizzate dai plugin / temi e si assicura che funzionino ancora nelle versioni più recenti di jQuery.

Passare alla 3.xfamiglia jQuery causerebbe l'interruzione di molti plugin / temi, poiché non è possibile avere uno script di migrazione per tutto ciò che è deprecato. Questo è il motivo per cui le nuove versioni della 1.xfamiglia erano ancora in fase di sviluppo, mentre la 2.xe 3.xfamiglie già esisteva. Non ci saranno nuove 1.xe 2.xversioni successive 1.12e 2.2, ad eccezione delle patch (di sicurezza). Sebbene jQuery 1.12non sia obsoleto in questo momento, lo sarà nel prossimo futuro.

Quindi, WordPress è in difficoltà. Se non si aggiorna a una versione jQuery superiore, non può tenere il passo con nuove possibilità. Tuttavia, se si aggiorna, i siti più vecchi si romperanno. Il risultato più probabile è che il WP attenderà un paio d'anni, quindi i temi / plug-in più vecchi verranno eliminati in ogni caso, per poi passare alla 3.xfamiglia .

Una precisazione

Quanto sopra potrebbe suggerire che la migrazione da 1.xversioni a 3.xnon è effettivamente possibile. Non è vero. È solo un po 'complicato. Il trucco è innanzitutto aggiornare 1.12, eseguire il debug del risultato utilizzando lo script di migrazione precedente e quindi aggiungere lo 3.0script di migrazione, che funziona con 1.12. Istruzioni dettagliate qui .

Aggiornamento di sicurezza

Gli sviluppatori noteranno che Google Dev Tools / Lighthouse segnala i siti WordPress come vulnerabili a causa della presenza di questa versione jQuery precedente - o almeno così sembra. In effetti, tutto ciò che fa Lighthouse è verificare se questa libreria presenta vulnerabilità menzionate nel database delle vulnerabilità di Snyk . Se lo controlli in dettaglio, scoprirai che la versione 1.12.4 è pulita. Dato l'ampio uso diffuso di 1.12.4, puoi contare su qualsiasi vulnerabilità grave che viene risolta rapidamente.


4
Solo per aggiungere un po 'di informazioni extra - sia jQuery 1.xe 2.x sono stati attivamente aggiornati fino a maggio di quest'anno, la differenza tra loro era semplicemente che 1.x aveva compatibilità con IE8 e 2.x ha rimosso le patch e correzioni per quei browser buggy. 3.x è la nuova versione e fa un ulteriore passo in avanti modificando varie interfacce per renderle compatibili con le interfacce HTML5 / JavaScript "ufficiali" (ovvero, dove ha fatto le cose allo stesso modo, le cose sono diventate standard dopo che jQuery aveva le sue versioni fare lo stesso tipo di cose).
Rycochet

23
  • Non è obsoleto
  • Passare a 2.xo 3.x è troppo presto, le persone usano ancora IE8 che è supportato solo su 1.x.

2
@LightnessRacesinOrbit D'accordo, ma dalla mia esperienza questa domanda è perfetta per quanto riguarda il calibro medio di uno sviluppatore di WP.
MonkeyZeus,

7
Aggiornamento per gennaio 2018: L'idea che sia obsoleta nonostante sia ancora l'impostazione predefinita inclusa in WordPress non è più "senza senso". Le vulnerabilità XSS sono state identificate con 1.12.4 e il ramo 1.x non riceve più aggiornamenti. La soluzione consigliata è l'aggiornamento a jquery 3.x snyk.io/test/npm/jquery/…
squarecandy

2
Inoltre, quando si utilizza Lighthouse, Google ti dice che la versione 1.12.4 contiene vulnerabilità di sicurezza note, quindi non dovresti utilizzarlo.
phpheini,

4
Supportare IE8, che Microsoft non fa nemmeno è a questo punto irresponsabile. Mantiene le persone che utilizzano un browser obsoleto con problemi di sicurezza. Se qualcuno sta usando IE8, devono fermarsi.
David A. francese,

1
@ DavidA.French I secondo il movimento. Gli sviluppatori devono smettere di accogliere gli utenti che si rifiutano di aggiornare. C'è stato un tempo in cui tutti aspiravano ad avere una totale compatibilità con ogni possibile browser noto e quelle cattive abitudini continuano a persistere. Forse quando le interwebs smettono di funzionare per loro, quelle persone si aggiorneranno a un browser moderno. A questo punto, se non sei sull'ultima versione di uno dei principali browser (IE e AOL non contano affatto) Internet non dovrebbe piegarsi per te. Onestamente IE8? Sei come meno dell'1% del web, [parlato in AOL] "Arrivederci"
KFish

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.