Perché dovrei utilizzare la rete CDN di Google per jQuery?

Questo potrebbe essere ovvio per alcuni, ma mi sono chiesto: perché dovrei dipendere dal server di Google per ospitare jQuery per il mio sito?

È solo perché si carica più velocemente in questo modo?

Questo è perché:

  1. Aumenta il parallelismo disponibile.
    (La maggior parte dei browser scaricherà solo 3 o 4 file alla volta da un determinato sito.)
  2. Aumenta le possibilità che ci sia un colpo di cache.
    (Più siti seguono questa pratica, più utenti hanno già pronto il file.)
  3. Garantisce che il carico utile sia il più piccolo ansible.
    (Google può pre-comprimere il file in una vasta gamma di formati (come GZIP o DEFLATE). Questo rende il tempo di scaricamento molto piccolo, perché è molto compresso e non è compresso al volo.)
  4. Riduce la quantità di larghezza di banda utilizzata dal server.
    (Google offre fondamentalmente larghezza di banda gratuita).
  5. Assicura che l’utente ottenga una risposta geograficamente vicina.
    (Google ha server in tutto il mondo, riducendo ulteriormente la latenza).
  6. (Facoltativo) Verranno automaticamente aggiornati i tuoi script.
    (Se ti piace “volare vicino al tuo pantalone”, puoi sempre utilizzare l’ ultima versione di qualsiasi script che offri, in grado di risolvere i problemi di sicurezza, ma in genere ti infastidisce.)

Esistono diversi scenari in cui potresti non voler utilizzare jQuery dal CDN di Google:

  1. Quando si crea un’applicazione Intranet in cui il server Web è ospitato nella stessa rete dei client. Se utilizzi il jQuery CDN di Google, effettuerai una chiamata a Internet anziché a un server web sulla rete locale. Ciò aumenta la larghezza di banda per la tua organizzazione ed è più lento.

  2. Quando si desidera eseguire la propria applicazione offline . (Abbastanza collegato al primo numero) Se è necessario lavorare su un ambiente di sviluppo (gestito ad esempio con Bower ), potrebbe essere necessario essere in grado di far funzionare l’applicazione senza alcuna connessione Internet (ad esempio: in un treno 🙂

  3. Quando hai bisogno di personalizzarlo . Ad esempio se si usa Grunt per build la libreria in modo da utilizzare solo determinati moduli o impostare il nome AMD

  4. Quando stai servendo pagine su SSL che richiedono jQuery. Dovresti pubblicare JavaScript su SSL e sulla tua pagina per evitare problemi di sicurezza e avvisi.

Inoltre, Microsoft ospita jQuery sul proprio CDN. Questa è un’altra scelta paragonabile all’utilizzo di jQuery ospitato da Google.

Questo studio di TJ VanToll mi ha convinto che è meglio concatenare jQuery con altri script piuttosto che caricarlo da un CDN.

Il motivo è la latenza implicata nel recupero di jQuery sui dispositivi mobili:

“Nel 2012 il tempo medio di RTT su una rete mobile negli Stati Uniti era di 344ms e 344ms si applica non solo a tutte le richieste HTTP – che la pagina Web media ora ne produce 93 – ma anche a tutte le ricerche DNS e alla connessione TCP … Mentre gli RTT medi stanno migliorando, ci sono solo piccoli guadagni aggiuntivi, dato che le reti attuali sono all’interno di un piccolo fattore del limite teorico dettato dalla fisica. ”

Cita anche questo post di Steve Souders che mostra il motivo per cui in realtà è improbabile ottenere il beneficio di caching dall’utilizzo di un CDN:

“A causa della frammentazione dei provider CDN, delle versioni di jQuery e dell’utilizzo del protocollo (http vs https), le probabilità di ottenere un hit della cache CDN sono incredibilmente basse – e il download da un dominio esterno ha il potenziale per eseguire non uno, ma tre round trip (una ricerca DNS, una connessione TCP e un GET HTTP). ”

Il più grande vantaggio è dalla memorizzazione nella cache. La teoria è che se un visitatore visita un sito che carica le sue librerie JavaScript, ad esempio jQuery ad esempio dal CDN di Google, quando visita il tuo sito Web, la libreria è già nella cache del browser dell’utente e non dovrà essere scaricata di nuovo . Questo suona alla grande in teoria.

I benefici condivisi qui e altrove sono tutti teorici. È appena arrivata un’analisi approfondita dell’utilizzo di un CDN e se fornisce i vantaggi prestazionali attesi. http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits

Una delle ragioni principali per NON lasciare che Google ospiti il ​​tuo jQuery, una cosa a cui molte persone non pensano, è che non verrà scaricato se sei in Cina. È bloccato insieme a molti altri script, caratteri ecc … ospitati da Google CDN. Se devi raggiungere un pubblico cinese, è meglio usare sempre un back-back ospitato sul tuo server. Google APIS bloccato in Cina

Alcune buone risposte qui a “Perché dovresti …” e “Perché non dovresti …”

Voglio semplicemente aggiungere un elenco di alternative a Google se si desidera caricare jQuery da un CDN.

Ma per riassumere, stai sostanzialmente migliorando le prestazioni complessive del tuo sito web / applicazione.