Wiązanie.Pliki js vs CDN

W celu poprawy wydajności naszych stron internetowych, zaleca się stosowanie CDN S do serwowania plików .js Na naszych stronach internetowych. To ma sens.

Zaleca się również Wiązanie naszych plików .js w celu zmniejszenia liczby żądań, które są wysyłane do serwera podczas ładowania.

Musimy więc usiąść i podjąć decyzję, czy używamy plików CDN czy bundle .js.

Jakie są plusy i minusy? Które mają więcej sensu?

Author: Flimzy, 2011-09-16

4 answers

Dlaczego nie można połączyć ich i umieścić je są CDN? To nie powinna być decyzja jednej czy drugiej?

Jeśli Masz , aby wybrać jeden lub drugi, zależy to od liczby .js plików, w których się znajdujesz. Dla małej liczby plików, ja sugeruję , że CDN będzie szybszy, gdzie-jeśli chodzi o większą liczbę plików, pakiet .js plików zdecydowanie. Bądź szybszy. Gdzie jest przełącznik, jest coś dla Ciebie do eksperymentuj z.

 13
Author: Matt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-24 20:24:55

Moja odpowiedź: obie . Połącz je i umieść na CDN.

Minusy robienia tego? To zależy. Jak wygląda proces budowania? Czy można łatwo zautomatyzować wiązanie i minifikację? Używasz Yahoo YUI, Google Closure czy czegoś innego?

Ponadto, jeśli jest dużo zależnego od GUI jQuery, może wystąpić czasochłonne tarcie z powodu stale zmieniających się elementów/efektów / css.

Testowanie jest również ważne, ponieważ ze względu na możliwe minifikacyjne dziwactwa.

Bottom line: 5 plików javascript bezpiecznie spakowanych w 1 Plik = = = 4 mniej zapytań.

Strona ze zwykłym starym Html i jednym zewnętrznym odniesieniem do javascript = = = 2 żądania do twojego serwera. Jednak strona z tylko zwykły stary Html i jeden zewnętrzny javascript odniesienia na CDN = = = 1 żądanie do serwera.

Obecnie korzystamy z narzędzi Google Closure. [17]}Google Closure Inspector pomaga w następujących kwestiach:

Closure Compiler modyfikuje oryginalny kod JavaScript i produkuje kod, który jest mniejszy i bardziej wydajny niż oryginalny, ale trudniejszy do odczytania i debugowania. Closure Inspector pomaga, zapewniając funkcję mapowania źródeł, która identyfikuje linię oryginalnego kodu źródłowego, która odpowiada skompilowanemu kodowi.

 12
Author: Kris Krause,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-16 14:38:25

Jest kilka rzeczy, o których musisz pomyśleć...

Ile JS trzeba załadować na początku ładowania strony, a ile można opóźnić na później?

Jeśli możesz opóźnić Ładowanie JS (np. umieścić go na dole strony) lub załadować go asynchronicznie, jak robi to Google Analytics, zminimalizujesz czas pobierania JS spędzony na blokowaniu wątku UI.

Po ustaleniu, jak można podzielić obciążenie JS, poradziłbym sobie z merge / minify z Różne Pliki JS-wycinanie żądań HTTP jest kluczem do poprawy wydajności.

Następnie spójrz na przejście do CDN i upewnij się, że CDN może obsługiwać zawartość js skompresowaną i pozwala ustawić nagłówki, aby była "buforowana na zawsze" (musisz wersję plików, jeśli buforujesz na zawsze). CDN pomaga zmniejszyć opóźnienia, ale także zmniejsza rozmiar, będąc cookieless

Inną rzeczą, którą warto rozważyć, jest utworzenie osobnej domeny dla treści statycznych, skierowanie jej do serwera(ów), podczas gdy uporządkowujesz rzeczy, a następnie przełączysz się na CDN, jeśli wygląda na opłacalne.

Andy

 1
Author: Andy Davies,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-19 19:47:43

Jak już stwierdzili inni, odpowiedź brzmi zarówno, jeśli to możliwe. W pakiecie (i minifikacja) daje korzyści użytkownikom, ponieważ zmniejsza wagę strony. CDN przynosi korzyści twoim serwerom, ponieważ odciążasz pracę. Ogólnie rzecz biorąc, nie musisz optymalizować, chyba że zauważyłeś problemy z wydajnością lub po prostu nie masz nic lepszego do roboty.

 0
Author: jiggy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-16 14:46:34