Troppo spesso, trovo del codice simile al seguente quando ispeziono il codice sorgente dei siti web che utilizzano jQuery:
[/code]
Invece, vi esorto a usare le Google AJAX Libraries (rete di distribuzione di contenuti) per servire il codice jQuery agli utenti direttamente dalla rete attraverso il datacenters di Google.
In questo modo si ha diversi vantaggi rispetto allo stesso codice jQuery ospitato su server locale: una latenza ridotta, un maggiore parallelismo, e una migliore caching. Tre ragioni
Possibili aggiornamenti: Dal momento che state leggendo questo post, potrebbe essere interessate sapere che Google ospita anche i temi di jQuery UI sulle API AJAX CDN.
Se hai già letto tutto questo e sei solo qui per il link, eccolo:
[/code]
- Diminuire la latenza Un CDN — abbreviazione di Content Delivery Network — distribuisce i contenuti statici su più server in diversi luoghi fisici diversi. Quando il browser di un utente risolve l’URL di questi files, s’incomincia a scaricare automaticamente il suo contenuto dal server più vicino disponibile in rete.
Nel caso di Google AJAX Libraries CDN, significa che gli utenti non fisicamente vicini al vostro server saranno in grado di scaricare jQuery più veloce anziché costringerli a scaricarlo dal server dove arbitrariamente si trova.
Ci sono alcune altre servizi nel CDN ma questo beneficio da solo potrebbe decidere la questione, ma c’è ancora di più. - Aumento del parallelismo Per evitare di sovraccaricare inutilmente i server, i browser limitano il numero di connessioni che possono essere fatte contemporaneamente. Secondo il browser in uso, tale limite può essere basso come due connessioni per host.
Utilizzando la Google AJAX Libraries CDN si eliminano queste richieste al tuo sito, permettendo più velocità dai vostri contenuti locali e scaricare in parallelo lo script. Non fa un’enorme differenza tra gli utenti con un browser da sei connessioni contemporanee, ma per quelli che ancora sono in esecuzione da un browser che permette solo due, la differenza è notevole. - Caching migliore Potenzialmente il più grande vantaggio di utilizzare la Google AJAX Libraries CDN è che gli utenti non devono scaricare jQuery tutte le volte.
Non importa quanto sia ben ottimizzato il vostro sito, se si ospita la libreria jQuery nel server locale, gli utenti che visitano il sito lo devono scaricarlo almeno una volta. Ciascuno dei vostri utenti, probabilmente ha già decina di copie identiche di jQuery nella cache del browser, ma tali copie di jQuery vengono ignorate quando visitano il vostro sito.Tuttavia, quando un browser vede dei riferimenti di jQuery ospitati al CDN, capisce che tutti questi riferimenti si riferiscono esattamente allo stesso file. Con tutti questi riferimenti al CDN puntano esattamente agli stessi URL, il browser si può fidare veramente che questi file sono identici e non perdere tempo a richiedere il file se è già nella cache. Così , il browser è in grado di utilizzare una singola copia che è nella cache su disco, indipendentemente da quale sito provengano i riferimenti al CDN.
Questo crea un potente effetto “cross-site caching
” cui tutti i siti si beneficiano se usano il CDN. Poiché il CDN di Google serve il file, con intestazioni che tentano di memorizzare nella cache i file fino ad un anno, questo potenziale effetto è davvero sorprendente. Con le molte migliaia di siti più trafficati su Internet che già utilizzando il CDN di Google per servire jQuery, è molto probabile che molti dei vostri utenti non farà mai una singola richiesta HTTP per jQuery quando visitano siti che usano il CDN.
Anche se qualcuno visita centinaia di siti che utilizzando la stessa versione di jQuery ospitata da Google, avranno bisogno di scaricarlo solo una volta!
Dei due metodi disponibili, questa opzione è quella che Google consiglia:
L’approccio di
google.load()
offre la massima funzionalità e prestazioni.Per esempio:
<script type="text/javascript">
// È possibile specificare i numeri di versione parziale,
// come ad esempio "1" o "1.3", con lo stesso risultato.
// In questo modo si carica automaticamente la versione più
// recente in corrispondenza al modello parziale di revisione.
// Ad esempio 1.3 caricherebbe la versione 1.3.2 e 1
// caricherebbe la versione 1.7.1
google.load("jquery", "1.7.1");
google.setOnLoadCallback(function() {
// Inserire il codice di inizializzazione
// qui invece di $(document).ready()
});
</script>
[/code]
Peggiore ancora, non è possibile utilizzare in modo affidabile il
gestore $(document).ready()
in combinazione con questo metodo. Il gestore setOnLoadCallback()
è un requisito.Ritornando al basico
google.load()
, io suggerisco di usare una buona dichiarazione <script
> vecchio stile. Google supporta anche questo metodo.Per esempio
src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// Questo piace di più !
});
</script>
[/code]
Se sei curioso perché il riferimento allo script non è presente il protocollo
http:
, è un trucco utile che consente di utilizzare un unico riferimento che funziona su entrambe le pagine HTTP e HTTPS, chiamato anche protocol-less. Quando il protocollo di un URL viene omesso, il browser utilizza il protocollo del documento corrente.Che ne pensi? State usando la Google AJAX Libraries CDN sui vostri siti? Riuscite a individuare uno scenario in cui il metodo
google.load()
si comporta meglio della semplice dichiarazione <script
>?Aggiornamento: Microsoft offre ora un servizio simile per MicrosoftAjax.js.
Ancora nessun commento