Reguła „wszystko, co wymagane przed rozpoczęciem renderowania strony, powinno pochodzić z tego samego serwera”, ogólnie dotyczy twojegoserwery lub inne mniejsze zasoby - sytuacje, w których wyszukiwanie DNS może zająć zauważalną ułamek sekundy (co może się szybko zsumować, jeśli obiekty są rozrzucone po wielu domenach). Przy powszechnych zasobach publicznych, takich jak pamięć podręczna Google jQuery i inne biblioteki, istnieje duża szansa, że przeglądarka odwiedzającego już wykonała to wyszukiwanie DNS (ponieważ inne witryny odwołują się do treści z tej usługi) i prawdopodobnie ma też plik w pamięci podręcznej, więc nie należy wykonać transfer (lub jeśli zostanie wysłane żądanie, może po prostu otrzymać krótką odpowiedź „304 - niezmodyfikowana”). Nawet jeśli obiekt wymaga pełnego pobrania, sieć dostarczania treści Google będzie szybsza dla większości użytkowników niż operacja na mniejszą skalę.
Jedna pokrewna reguła: do obiektów, które nie są wymagane do poprawnego działania strony (tak, jak ją widzi użytkownik), należy odwoływać się jak najszybciej w głównej odpowiedzi HTTP. Na przykład, takie jak skrypty wymagane dla usług reklamowych / statystycznych (tj. Google Analytics i podobne) - przekaż użytkownikowi swoje treści tak szybko, jak to możliwe, a następnie załaduj elementy tła, które naprawdę Cię interesują. Zablokowałem kilka usług reklam / statystyk (mapując je na 127.0.0.1 w pliku hostów), ponieważ często są one zbyt wolne, a witryny, które odsyłają do nich wcześniej, po prostu dają mi pustą stronę, podczas gdy skrypty są oczekiwane odwoływania się do nich późno, abym mógł przeczytać treść, dla której jestem, podczas gdy inne rzeczy krążą w tle.
Przydatność domeny bez plików cookie do treści statycznych jest kwestią skali. Jeśli wszystko, co masz, to jeden 10-bajtowy identyfikator sesji w plikach cookie i dziesięć tysięcy odwiedzających dziennie żądających ~ 20 obiektów statycznych na wizytę, oszczędzasz tylko ~ 118 MB przepustowości na miesiąc (20 * 20 * 10000 * 31/1024/1024). Z drugiej strony, jeśli Twoja strona przechowuje w plikach cookie pliki o wartości jednego lub dwóch kilobajtów, różnica może być znacznie bardziej znacząca, zwłaszcza jeśli którykolwiek z twoich użytkowników uzyskuje dostęp do witryny za pośrednictwem wolnych połączeń (np. GPRS przez tethering do telefonu komórkowego lub - zatłoczone łącze Wi-Fi w obszarze o wysokich zakłóceniach) lub jeśli otrzymujesz miliony odwiedzin dziennie.
Podsumowując, w przypadku skryptów, które należy załadować, zanim strona będzie mogła renderować, moje preferencje to:
- ajax.googleapis.com lub podobny
- oryginalna nazwa hosta strony wywołującej
- statyczna domena bez plików cookie
W przypadku zasobów, które nie są niezbędne do początkowego renderowania strony, odwołaj się do nich jak najwcześniej i odwróć powyższą listę preferencji (chociaż różnica między oryginalną nazwą hosta a domeną bez plików cookie najprawdopodobniej nie jest znacząca, chyba że działasz na dużą skalę ).
With common public resources ... there is a good chance that your visitor's browser has already done that DNS lookup today
Osobiście nie czułbym się dobrze, polegając na tym w mojej witrynie. Chciałbym, aby było tak szybko, jak to możliwe, w jak największej liczbie sytuacji. Niezależnie od tego, robisz dobre punkty. +1