2010-04-24 18 views
10

Recentemente ho iniziato a utilizzare la Rackspace Cloudfiles CDN (Limelight), di cui ho alcune domande:Quali sono le best practice per CDN?

  1. sto usando jQuery, jQuery UI e strumenti jQuery in aggiunta al codice personalizzato JS. Inoltre, il mio sito è scritto in ASP.Net, il che significa che c'è un codice JS generato da ASP.Net.

In questo momento, ho combinato tutti i js (incluso il codice jquery), tranne che il file JS di ASP.Net ha generato un solo file. Sto ospitando questo sul CDN di Rackspace.

Mi chiedo se sarebbe più sensato ottenere i file jQuery, jQuery UI dal CDN ospitato da Google (che, a mio avviso, funzionerebbe molto bene nel servire questi file, dato che saranno già nella cache di molti utenti)?

Ciò significherebbe una richiesta HTTP aggiuntiva, quindi non sono sicuro se sarà di aiuto.

  1. In questo momento ho più contenitori per le mie risorse. Ad esempio, in Rackspace ho 3 contenitori: JS, CSS e Images. Il sottodominio URL per tutti e 3 è diverso. Ciò comporterà una penalizzazione delle prestazioni? Dovrei semplicemente usare un container (e quindi un dominio per il CDN)?

  2. C'è un modo per far caricare il JS MS ASP.Net da MS CDN? Questo avrebbe un impatto sulle prestazioni come da domanda sopra?

+0

Questo collegamento potrebbe essere utile: http://stevesouders.com/hpws/rules.php –

risposta

7

Il # 1 modo per velocizzare il sito Web è ridurre al minimo le richieste HTTP (Best Practices from Yahoo). Quindi, se stai già servendo i tuoi file CSS combinati da un CDN, lo stai facendo. Serve alcuni da google e alcuni dal tuo CDN aggiunge richieste.

Purtroppo non è possibile combinare CSS e JS in un unico file, quindi resterete bloccati con una richiesta ciascuno per CSS e JS. Potresti voler verificare che questi siano pubblicati su GZIPPED.

Per quanto riguarda le immagini, il modo migliore per accelerare è utilizzare gli sprite di immagini ogni volta che è possibile.

Probabilmente ha senso servire i file da domini separati in quanto aumenta il numero di download paralleli. (Another article from yahoo on this). Se i tuoi js & css sono solo due file puoi probabilmente metterli su un dominio e le tue immagini su un altro.

+0

hmm ... interessante. La tua risposta ha molto senso. Probabilmente lo confermerò con alcuni test. –

+0

Sorprendentemente, il Limelight CDN non gZIP questi file! Non l'ho fatto, ma sto minificando i file CSS, JS. –

+1

Dal sito delle migliori pratiche di Yahoo: "La riduzione del numero di nomi host univoci può ridurre la quantità di download parallelo che si verifica nella pagina. Evitare le ricerche DNS riduce i tempi di risposta, ma ridurre i download paralleli può aumentare i tempi di risposta. la linea guida è quella di dividere questi componenti tra almeno due ma non più di quattro nomi host, il che si traduce in un buon compromesso tra la riduzione delle ricerche DNS e il rilascio di un elevato grado di download paralleli. " –

3

È decisamente meglio avere le risorse in un dominio diverso.

i browser caricano le risorse Web una alla volta o in sequenza da un singolo host. Non inizieranno a richiedere e scaricare l'asset successivo fino a quando non avranno terminato con quello precedente dello stesso dominio. Pertanto, il raddoppio degli host o dei domini può accelerare la velocità di download di circa il 100%, poiché i browser possono scaricare contemporaneamente contenuti da 2 domini diversi.

se cookie o sessione sono abilitati sul tuo sito web, il browser invierà il cookie di sessione ogni volta che inoltra una richiesta al dominio, che è inutile perché è un contenuto statico - il server non ha bisogno del cookie in tutto per servire contenuti statici come le immagini. Non è solo uno spreco di larghezza di banda, ma anche uno spreco di tempo di comunicazione. Per evitare ciò, pubblica tutti i contenuti statici da un dominio che non è abilitato ai cookie.

al contrario avendo JS servito su siti che aggiornano il mantenimento che il codice JS potrebbe diventare complicato in quanto si perde la possibilità di testare il JS corrente contro i nuovi framework.

+0

Sì, l'avevo letto - ma mi chiedo quanti host siano troppi? Ad esempio, mi piacerebbe caricare gli strumenti jquery + jquery di Google, jquery ui dal proprio cdn (ne forniscono uno gratuito), i file MS JS dal CDN di MS, ecc., Ma non porterebbe a molte richieste HTTP ? Sì, queste sarebbero richieste senza condiscendenza, ma non dovrebbero aggiungere? –

+2

Non penso che l'idea principale per questo sia avere meno richiesta http ma essere in grado di avere multipli allo stesso tempo per aumentare le prestazioni. quindi riduci le richieste che devi indirizzare alle risorse stesse ma non al CDS ... come usare tutte le immagini in una immagine e selezionarle dalla proprietà posizione di sfondo .... scrivendo meglio js e cercando di ridurre i loro numeri ... ecc. – XGreen

+1

Aha! Trovata una linea guida dal sito di best practice di Yahoo: http://developer.yahoo.com/performance/rules.html "La riduzione del numero di nomi host univoci ha il potenziale per ridurre la quantità di download parallelo che si svolge nella pagina. Evitare le ricerche DNS riduce i tempi di risposta, ma ridurre i download paralleli può aumentare i tempi di risposta.La mia linea guida è quella di dividere questi componenti tra almeno due ma non più di quattro nomi host.Questo risulta in un buon compromesso tra la riduzione delle ricerche DNS e un alto grado di download paralleli. " –

Problemi correlati