Perché dovrei usare la CDN di Google per jQuery?


169

Questo può essere ovvio per alcuni, ma mi chiedevo: perché dovrei dipendere dal server di Google per ospitare jQuery per il mio sito?

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



2
Nessuno menziona quale sia la politica di Google sul collegamento a caldo ai propri file JS (dato che il collegamento a caldo è generalmente disapprovato), ecco l'URL in cui Google menziona questo è OK e altro sulle biblioteche che ospitano: code.google.com/apis/ajaxlibs/ documentazione / index.html
Loftx


1
Molti utenti hanno già scaricato jQuery da Google o Microsoft quando visitano un altro sito. Di conseguenza, verrà caricato dalla cache quando visitano il tuo sito, il che porta a tempi di caricamento più rapidi
AminM

Non dovresti usare Microsoft o Google. Usa MaxCDN. Molto più probabile che venga colpito dalla cache, che è la cosa più importante qui blog.jquery.com/2014/01/14/…
0fnt

Risposte:


393

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 la possibilità che si verifichi un hit nella cache.
    (Poiché più siti seguono questa pratica, più utenti hanno già il file pronto.)

  3. Assicura che il carico utile sia il più piccolo possibile.
    (Google può pre-comprimere il file in una vasta gamma di formati (come GZIP o DEFLATE). Ciò rende il tempo di download molto ridotto, perché è super compresso e non è compresso al volo.)

  4. Riduce la quantità di larghezza di banda utilizzata dal server.
    (Google offre sostanzialmente larghezza di banda gratuita.)

  5. Assicura che l'utente abbia una risposta geograficamente vicina.
    (Google ha server in tutto il mondo, riducendo ulteriormente la latenza.)

  6. (Opzionale) Manterranno automaticamente aggiornati gli script.
    (Se ti piace "volare vicino al sedile dei pantaloni", puoi sempre utilizzare l' ultima versione di qualsiasi script che offrono. Questi potrebbero correggere buchi di sicurezza, ma generalmente rompere le tue cose.)

10
Adoro come continui a venire con sempre più ragioni. +1 solo per quello.
Matchu,

6. I server di Google sono probabilmente più veloci dei tuoi! Non sono sicuro che il punto 3 sia davvero pertinente poiché chiunque può minimizzare così come Google. +1 per un'ottima risposta :)
Paul Creasey,

1
Sento che il numero 3 probabilmente ha più a che fare con gzip e simili, dal momento che jQuery distribuisce già una versione ridotta.
Matchu

2
Dio, tutti mi stavano attaccando, ho appena inviato le mie idee e sono stato accettato, LOL
Farshad,

1
@farshad: non attaccarti, attaccare la risposta accettata che non era buona come la risposta successiva. Questo è il modo in cui funzionano le domande e risposte della community. Prova a formattare la tua risposta un po 'più professionale la prossima volta e limita le tue critiche alla domanda al tipo utile e costruttivo.
Joel

58

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 sulla stessa rete dei client. Se si utilizza jQuery di CDN di Google, si effettuerà una chiamata a Internet anziché a un server Web sulla rete locale. Ciò aumenta la larghezza di banda per l'organizzazione ed è più lento.

  2. Quando si desidera eseguire l'applicazione offline . (Abbastanza collegato al primo problema) Se devi lavorare su un ambiente di sviluppo (gestito ad esempio con Bower ), potresti dover essere in grado di far funzionare la tua applicazione senza alcuna connessione a Internet (es .: in un treno :)

  3. Quando è necessario personalizzarlo . Ad esempio se si utilizza Grunt per creare la libreria al fine di utilizzare solo determinati moduli o impostare il nome AMD

  4. Quando offri pagine su SSL che richiedono jQuery. Dovresti pubblicare JavaScript su SSL e la 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.


35
Solo una FYI che puoi utilizzare i server di Google per pubblicare una versione SSL delle librerie javascript ospitate. ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js funziona.
Aaron Wagner,

Buono a sapersi, Aaron. Grazie.
Lance Fisher,

3
+1 per menzionare Microsoft. Google ottiene modo troppo credito imo.
Sì, Barry,

7
Anche FYI: i collegamenti ipertestuali relativi allo schema, come src="//ajax.googleapis.com/...", funzionano.
John Gietzen

3
E considera anche cndjs
Bryce,

29

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 coinvolta nel recupero di jQuery su dispositivi mobili:

"Nel 2012 il tempo medio di RTT su una rete mobile negli Stati Uniti era di 344 ms. E quel 344 ms si applica non solo a tutte le richieste HTTP - di cui la pagina Web media fa ora 93 - ma anche a tutte le ricerche DNS e connessioni TCP ... Mentre i RTT medi stanno migliorando, ci sono solo piccoli guadagni aggiuntivi da ottenere, poiché le reti attuali rientrano in un piccolo fattore del limite teorico dettato dalla fisica ".

Cita anche questo post di Steve Souders che mostra perché è improbabile che tu possa ottenere i benefici della cache dall'uso di una CDN:

"A causa della frammentazione dei provider CDN, delle versioni jQuery e dell'utilizzo del protocollo (http vs. https), le possibilità di ottenere un hit della cache CDN sono sorprendentemente 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 HTTP GET). "


3
Questo non è più vero per HTTP2 e SPDY. Oggi puoi ospitare tutte le tue risorse esterne in una CDN come Cdnjs.com o qualcosa del genere e tutti i file verranno scaricati utilizzando la stessa richiesta. Questo è fondamentalmente lo stesso di concatenato.
Ricardo Polo Jaramillo,

13

Il più grande vantaggio è dalla memorizzazione nella cache. La teoria è che se un visitatore ha visitato un sito che stava caricando le proprie librerie JavaScript, ad esempio jQuery dalla CDN di Google, quindi quando visitano il tuo sito Web, la libreria si trova già nella cache del browser dell'utente e non dovrà essere nuovamente scaricata . Suona benissimo in teoria.

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


Questa risposta è ampiamente sottovalutata. Fornisce i "contro" ugualmente validi alla risposta accettata "pro" sopra.
Thomas Wana,

@ user239558 Il collegamento non sarebbe morto se l'autore dello studio avesse effettivamente utilizzato un CDN ;-) L'errore è: [function.require]: impossibile aprire il flusso: nessun file o directory in / homepages / 41 / d222999437 /htdocs/wp-content/themes/prose/functions.php
jplandrain

L'articolo non è ben pensato. Dice che le librerie jQuery meno comuni sono servite da Google CDN su circa lo 0,5% di tutte le pagine. Durante una sessione di navigazione generale visito un sacco di pagine, in particolare quei piccoli collegamenti a siti come ad esempio quello che lo ospita. O siti di blog. Visito facilmente 30 siti unici al giorno, dopo una settimana le possibilità di non averlo nella cache sono piuttosto scarse. Anche se potrebbe non essere memorizzato nella cache per tutti i tuoi utenti, le persone che fanno un uso intensivo di Internet avranno quasi sempre la cache, perché visitano molto più di 1 dominio unico in totale.
Aidiakapi,

8

Uno dei motivi principali per NON consentire a Google di ospitare il tuo jQuery, uno a cui molte persone non pensano, è che non verrà scaricato se ti trovi in ​​Cina. È bloccato insieme a molti altri script, caratteri ecc ... ospitati da Google CDN. Se devi raggiungere un pubblico cinese, ti consigliamo di utilizzare sempre un fallback ospitato sul tuo server. Google APIS bloccato in Cina


Non sono d'accordo @tmthydvnprt. La domanda è supponente, quindi è qui che inizia la maggior parte della colpa, ma questo risponde alla domanda.
Arrivederci StackExchange il

1
Sono venuto qui per la stessa cosa. Se gli utenti si trovano in Cina, quasi tutto da Google è bloccato dal grande firewall. Tuttavia, questo è probabilmente un problema poiché molte persone in Cina utilizzano un servizio VPN e probabilmente non vorrai comunque indirizzare il mercato cinese.
Justin il

0

Alcune buone risposte qui a "Perché dovresti ..." e "Perché non dovresti ..."

Voglio semplicemente aggiungere un elenco di alternative a Google se volessi caricare jQuery da una CDN.

Riassumendo, stai sostanzialmente migliorando le prestazioni complessive del tuo sito Web / applicazione.


0

Usando la CDN con un addetto all'assistenza, è possibile scaricare la CDN una volta nella vita del client e non ogni volta che si aggiorna il codice.

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.