Esiste un VERO vantaggio tangibile nellutilizzo della libreria ospitata da jQuery di Google? O dobbiamo semplicemente scaricarlo sul nostro server?

Quali sono le tue opinioni in merito?

Commenti

  • Un semplice google ricerca avrebbe fornito la risposta …

Risposta

Ci sono due principali vantaggi nellusare un CDN esterno come Google per ospitare jQuery:

  1. È più veloce. Sarà sicuramente essere più veloce del tuo sito e probabilmente più veloce di qualsiasi CDN che hai configurato tu stesso.
  2. Potrebbe essere già memorizzato nella cache . Molti siti fanno riferimento a jQuery anche sulla CDN di Google, quindi se hanno visitato un altro sito con esso prima del tuo, non avranno nemmeno bisogno di scaricarlo.

Potenziale svantaggi:

  1. Il dominio potrebbe essere bloccato (questo è abbastanza comune in posti come la Cina ). Puoi risolvere questo problema con un fallback locale ( vedi lui per sapere come ).
  2. La frammentazione dei numeri di versione è piuttosto alta, quindi i visitatori del tuo sito potrebbero avere molte versioni differenti memorizzate nella cache, ma non quella a cui hai fatto riferimento ( vedi qui per alcune statistiche recenti ). Questo è solo un problema al caricamento della prima pagina.

Commenti

  • Puoi pubblicare un riferimento su come impostare un fallback locale?
  • Come Zistolen ha sottolineato prima, un altro vantaggio è che scaricherà in parallelo ai tuoi siti web altre risorse. Potresti aggiungerlo anche a questa risposta altrimenti ottima.
  • Questo ‘ è un po fuorviante. I browser scaricano le risorse in parallelo indipendentemente da dove sono ospitate, ma cè un limite al numero di cose che ‘ scaricheranno dallo stesso host contemporaneamente.
  • Lho ignorato poiché onestamente ‘ non è né qui né là: il file può essere scaricato in parallelo ma ‘ è anche un altro Ricerca DNS. Inoltre, qualunque differenza di tempo in uno di questi due fattori è comunque trascurabile.
  • Abbastanza giusto. Ma su connessioni veloci, non può risultare in un tempo di caricamento totale più veloce, poiché è possibile utilizzare più ” pipe “?

Risposta

Un altro aspetto negativo:

Lutilizzo di un CDN consente alloperatore del CDN di monitorare i visitatori dei siti. Ecco perché non costano denaro.

Commenti

  • Monitoraggio sicuro, ma non visitatori: entrambi jquery ‘ il CDN jquery di Google e ‘ sono ospitati su domini che non ‘ impostano o utilizzano cookie (questo è probabilmente anche unottimizzazione delle prestazioni) e ‘ non contiene informazioni realmente identificabili nella richiesta. Il provider CDN può farsi unidea degli indirizzi IP e di alcune statistiche sulle stringhe e sui referer degli user agent. Questo è probabilmente prezioso, ma ‘ non è di per sé un enorme rischio per la privacy (se questi record fossero correlati con un altro database, ad esempio annunci personalizzati pubblicati in momenti simili, allora forse potrebbe essere un mezzo di tracciamento).
  • Penso che si possa dare per scontato (nel caso di google) che i dati siano correlati con altri database, dato che quasi tutti utilizzano sempre google per effettuare ricerche. Stessa cosa con i caratteri di Google: di recente ho provato a ospitare autonomamente i caratteri su un server, ma ho scoperto che è molto difficile farlo. Google non lo vieta (Open Source), ma non ‘ ti fornisce i file in modo pronto per luso: puoi compilarli tu stesso (ma cè no makefile), oppure puoi falsificare le richieste ai server che vengono utilizzati per consegnarle normalmente. Entrambi non sono fattibili per un non tecnico.
  • Forse. Non ‘ non ho alcuna informazione privilegiata, quindi ‘ è difficile da dire con certezza. Sono ‘ certo che ‘ avrà bug e lacune significative, tuttavia: la maggior parte dei luoghi in cui uso Internet è NAT, e molti un bel po di utenti con macchine simili (probabilmente stringhe UA identiche) – ‘ sarebbe impossibile sapere quale richiesta proviene da chi. E, naturalmente, con i pulsanti adsense e di condivisione sociale, possono avere un mezzo più affidabile quasi sempre, quindi posso immaginare che non ‘ si preoccupino. Per quanto riguarda i caratteri, li ‘ li ho scaricati più volte, quindi non ‘ capisco bene cosa intendi per essere difficile?
  • Per essere chiari: ‘ presumo che la maggior parte delle visite al sito web che effettui possa e sarà monitorata dai grandi raccoglitori di statistiche in virtù di pulsanti di condivisione sociale (abbastanza pervasivi) e annunci, che sono praticamente ovunque. Quindi mi chiedo solo quanto siano preziose le informazioni potenzialmente fuorvianti provenienti da richieste js molto memorizzate nella cache – ‘ scommetto, non molto, quindi presumo che non ‘ Non si preoccupa di cercare di identificare personalmente le persone che utilizzano JS servito da CDN.
  • Non è così memorizzato nella cache come si potrebbe pensare – Quando si incorporano i caratteri utilizzando il modo in cui Google preferisce, inserendo un collegamento CSS a fonts.googleapis. com, ogni singola visualizzazione di pagina apre una connessione a google (puoi vederli in Firebug). Non ‘ importa se memorizzato nella cache o meno. Per quanto riguarda il download: puoi indicarmi un posto dove posso scaricare i caratteri in formato eot, woff, ttf e svg di alta qualità (stesse versioni fornite da Google, nessun convertitore esterno)?

Answer

Lutilizzo di CDN per suddividere le tue dipendenze su molti server come questo rappresenta essenzialmente un compromesso tra larghezza di banda e latenza, supponendo che ti interessi solo sulle prestazioni.

Per inciso, presumo che lalternativa non sia semplicemente ospitarlo localmente, ma concatenarlo con una diversa richiesta locale – di solito non cè una buona ragione per non concatenare quando è possibile.

Se la larghezza di banda è infinita, allora è meglio NON lo sharding, perché sarai lento come il tuo servizio più lento, poiché le latenze non sono perfettamente prevedibili, con servizi sufficienti, anche se sono veloci, tu basta un pizzico di sfortuna per causare un caricamento lento della pagina.

Se la latenza è 0, distribuire il carico su molti server può migliorare la larghezza di banda utilizzando molti server rs (non molto utile poiché probabilmente i limiti di larghezza di banda sono vicini ai client, non ai server), ma ancora più importante, può ridurre leggermente la quantità di dati trasmessi aumentando lefficacia della memorizzazione nella cache.

Dipende da il tuo scenario, ma generalmente mi aspetto che la latenza sia più un problema della larghezza di banda, a meno che i tuoi script non siano follemente enormi (cosa che jquery non lo è). A quel punto, di solito è più veloce ospitare jquery come parte di un file locale concatenato.

I motivi per non ospitare localmente sono ad esempio quando si paga per la larghezza di banda, o si “re hosting su un server lento ( la tua connessione al client è strozzata dalla tua parte, non dai client), oppure sai che i tuoi client avranno una larghezza di banda molto bassa (dsl o modem di fascia bassa, diciamo – i dispositivi mobili tendono ad avere più problemi di latenza rispetto a problemi di larghezza di banda) , oppure i tuoi clienti pagano per la larghezza di banda (ad es. dispositivi mobili) e gli script sono una parte così evidente di ciò che il caching minore è importante (non probabile).

In ogni caso: molto più rilevante sarà se tu ” abbiamo trattato prima le basi; intestazioni di memorizzazione nella cache appropriate, concatenazione, minimizzazione e compressione (preferibilmente con un elevato rapporto di compressione). Ed ecco il punto cruciale: se NON “ lo fai, almeno lo farà il CDN, in modo che vinca …

TL; DR: Se hai coperto concatenazione + minimizzazione + gzipping + caching, allora servire piccoli script localmente è più veloce che da un CDN nonostante le migliori prestazioni del CDN, ma solo se hai fatto i compiti, forse non il primo caricamento della pagina, e ci sono sicuramente delle eccezioni a questa regola.

Commenti

  • Per inciso, ci sono alcuni byte-shavings vinti usando una sola richiesta: le sole intestazioni ammontano a quasi 1kb, che su un payload di 28k non è ‘ t niente. gzip funziona meglio con più contesto, il che consente di risparmiare altri 0,5k. TCP, DNS, HTTPS overhead possono aggiungere facilmente un KB qua o là e, peggio ancora, RTT ‘ s. Questo ‘ è il motivo per cui per piccoli file come questo un CDN è un non come veloce come potresti pensare.

Rispondi

Lutilizzo della libreria jQuery ospitata da Google consente alla tua pagina di essere caricato più velocemente. In effetti, la libreria viene caricata contemporaneamente alla tua pagina invece che dopo.

Commenti

  • Ma come influisce sul caricamento della pagina?
  • Le librerie locali vengono caricate anche mentre la pagina viene caricata – In entrambi i casi il download dellasset inizia quando il browser (moderno) vede lo snippet di codice che attiva il download, che di solito avviene prima che lintero documento venga scaricato . Guarda questo screenshot di Firebug per un esempio

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *