2010-04-24 11 views
10

Niedawno zaczął używać Rackspace Cloudfiles CDN (Limelight), o której mam kilka pytań:Co to są najlepsze metody CDN?

  1. używam jQuery, jQuery UI i narzędzi jQuery oprócz niestandardowego kodu JS. Ponadto moja strona jest napisana w ASP.Net, co oznacza, że ​​istnieje pewien kod JS generowany przez ASP.Net.

W tej chwili zrobiłem to, że połączyłem wszystkie js (w tym kod jquery), z wyjątkiem wygenerowanego przez ASP.Net JS w jeden plik. Prowadzę to na CDN Rackspace.

Zastanawiam się, czy miałoby to więcej sensu po prostu jQuery pliki jQuery UI z Google gospodarzem CDN (co podejrzewam będzie działać bardzo dobrze w służbie tych plików, ponieważ będą one w pamięci podręcznej wielu użytkowników już)?

To by znaczyło jedno dodatkowe żądanie HTTP, więc nie jestem pewien, czy to pomoże.

  1. W tej chwili mam wiele kontenerów na moje aktywa. Na przykład w Rackspace mam 3 kontenery: JS, CSS i obrazy. Poddomena URL dla wszystkich 3 jest inna. Czy to prowadzi do kary za wyniki? Czy powinienem użyć jednego kontenera (a więc jednej domeny dla CDN)?

  2. Czy istnieje sposób na wygenerowanie MS MS ASP.Net wygenerowany z MS CDN? Czy ma to wpływ na wydajność, zgodnie z powyższym pytaniem?

+0

Ten link może być pomocny: http://stevesouders.com/hpws/rules.php –

Odpowiedz

7

Najpopularniejszym sposobem na przyspieszenie działania witryny jest ograniczenie liczby żądań HTTP (Best Practices from Yahoo). Więc jeśli już udostępniasz swoje połączone pliki CSS z CDN, robisz to. Serwowanie niektórych z Google, a niektóre z CDN dodaje żądania.

Niestety nie można połączyć CSS i JS w jeden plik, więc utkniesz z jednym żądaniem dla CSS i JS. Możesz sprawdzić, czy są one wyświetlane w GZIPPED.

Jeśli chodzi o twoje zdjęcia, najlepszym sposobem na przyspieszenie ich jest użycie obrazków, kiedy tylko jest to możliwe.

Prawdopodobnie ma sens rozsyłanie plików z oddzielnych domen, ponieważ zwiększa to liczbę równoległych pobrań. (Another article from yahoo on this). Jeśli twoje js & css to tylko dwa pliki, prawdopodobnie możesz umieścić to w jednej domenie, a obrazy w innej.

+0

hmm ... interesujące. Twoja odpowiedź ma wiele sensu. Prawdopodobnie potwierdzę to za pomocą niektórych testów. –

+0

Co zaskakujące, CDN Limelight nie obsługuje GZIP tych plików! Nie zrobiłem tego, ale zminimalizuję pliki CSS, JS. –

+1

Z witryny najlepszych praktyk Yahoo: "Zmniejszenie liczby unikalnych nazw hostów może zmniejszyć liczbę równoległych operacji pobierania na stronie Unikanie wyszukiwań DNS skraca czas odpowiedzi, ale ograniczenie pobierania równoległego może wydłużyć czas odpowiedzi. wytycznymi jest podzielenie tych komponentów na co najmniej dwa, ale nie więcej niż cztery nazwy hostów, co daje dobry kompromis między redukcją wyszukiwań DNS a umożliwieniem wysokiego poziomu pobierania równoległego. " –

3

Zdecydowanie lepiej mieć swoje aktywa w innej domenie.

przeglądarki ładują zasoby sieciowe pojedynczo lub kolejno z jednego hosta. Nie zaczną żądać i pobrać następnego zasobu, dopóki nie zostaną zakończone poprzednią z tej samej domeny. Dlatego podwojenie hostów lub domen może przyspieszyć prędkość pobierania o około 100%, ponieważ przeglądarki mogą jednocześnie pobierać pliki z 2 różnych domen.

jeśli ciasteczko lub sesja jest włączona w Twojej witrynie, przeglądarka wyśle ​​cookie sesji za każdym razem, gdy wyśle ​​żądanie do domeny, która jest bezużyteczna, ponieważ jest to zawartość statyczna - serwer nie potrzebuje pliku cookie na stronie wszystko, aby wyświetlać treści statyczne, takie jak obrazy. To nie tylko marnowanie przepustowości, ale także marnowanie czasu komunikacji. Aby tego uniknąć, wyświetl wszystkie statyczne treści z domeny, która nie jest włączona w pliku cookie.

w przeciwieństwie do tego, że JS był serwowany na stronach, które aktualizują, że kod JS może być trudny, ponieważ tracisz szansę na przetestowanie swojego obecnego JS na nowych frameworkach.

+0

Tak, przeczytałem to - ale zastanawiam się, ilu hostów jest za dużo? Na przykład chciałbym załadować narzędzia jquery + jquery z Google, jquery ui z własnego CDN (dostarczają one jeden darmowy), pliki MS JS z CDN MS itd. - ale nie prowadziłoby to do dużej liczby żądań HTTP ? Tak, byłyby to prośby bez cookie, ale czy by się nie sumowały? –

+2

Nie sądzę, że głównym pomysłem jest uzyskanie mniejszej liczby żądań http, ale jednoczesne posiadanie wielu w celu zwiększenia wydajności. więc zmniejsz liczbę żądań, które musisz skierować na same zasoby, ale nie CDS ... jak używanie wszystkich obrazów w jednym obrazie i zaznaczanie ich za pomocą właściwości pozycji tła ... pisanie lepszych js i próbowanie zredukowania ich liczby ... itd. – XGreen

+1

Aha! Znalazłem wytyczne na stronie z najlepszymi praktykami Yahoo: http://developer.yahoo.com/performance/rules.html "Zmniejszenie liczby unikalnych nazw hostów może zmniejszyć ilość równoległego pobierania, które ma miejsce na stronie. Unikanie wyszukiwań DNS skraca czasy odpowiedzi, ale zmniejszenie liczby pobrań równoległych może wydłużyć czas odpowiedzi.Moje wytyczne powinny podzielić te komponenty na co najmniej dwa, ale nie więcej niż cztery nazwy hostów, co daje dobry kompromis między redukcją wyszukiwań DNS i dopuszczeniem wysokiego stopnia równoległe pliki do pobrania. " –