2013-07-31 8 views
5

Aby zminimalizować liczbę żądań wysłanych do mojego serwera i poprawić czas ładowania, zastanawiałem się nad połączeniem wszystkich moich plików JS, w tym plików js dostawcy, takich jak kątowe, jquery- ui, ... Powszechną praktyką jest to zrobić, ale często widzę strony internetowe, które nie zawierają plików JS swoich dostawców w tym samym pliku JS. Wiem, że wiele witryn używa CDN do ponownego użycia buforowanej wersji pliku JS, który mógł zostać użyty przez inną stronę. Howewer, czasami są one oddzielne sprzedawca pliki JS, które są obsługiwane na tym samym serwerze, na przykład na Github:Czy są jakieś wady łączenia wszystkich plików JavaScript (w tym dostawcy)?

Github

Github posiada:

  • Frameworks.js że zawiera modernizr, jQuery
  • github -... js zawierający JS od samego Github.

Czy jest jakiś szczególny powód, aby to zrobić? Czy są jakieś problemy, które mogą się pojawić, ponieważ łączysz wszystkie swoje pliki JS?

Odpowiedz

3

Głównym powodem jest zminimalizowanie liczby żądań http. W większym projekcie, jeśli używasz jakiegoś wzorca, takiego jak MV *, możesz wyodrębnić każdy moduł w zewnętrznym pliku .js. Może to spowodować, na przykład, wiele plików 30-40. W takim przypadku możesz połączyć się w jeden plik.

W mniejszym projekcie, w którym będziesz mieć plik 3-4 js, użyjesz go, a następnie bez konkatenacji. Używam requirejs do definiowania modułów jako AMD i każdy moduł w zewnętrznym pliku. Następnie używam skryptu requireji do zarządzania zależnościami i połączonymi plikami wdrażania.

Dobre narzędzia do zautomatyzować ten proces

-1

Wydajność mądry to nie ma różnicy. Jeśli denerwujesz się, że masz oddzielny plik dla wszystkich swoich frameworków, to możesz to zrobić. W przeciwnym razie po prostu wypełnisz pojedynczy plik i potencjalnie będziesz mieć problemy z późniejszą aktualizacją frameworków.

2

Zależy od tego, jak się stosuje. Hipotetycznie, powiedz, jeśli masz 20 plików js o wielkości 0,5 MB każdy. Z czego tylko 2 (1 MB) są wymagane na pierwszej stronie. Możesz zachować je oddzielnie i łączyć ze sobą. Załaduj pozostałe w trybie odroczonym na pierwszej stronie. Łączenie plików jest więc dobre, gdy zrozumiesz, co chcesz połączyć. Zasadniczo, jeśli masz bardzo mało plików, to naprawdę nie robi dużej różnicy.

niektóre z rzeczy, które należy myśleć o przed połączeniem pliki JavaScript,

podczas łączenia 100 plików razem. zmniejszasz 99 żądań. Ale robisz również:
* zwiększenie czasu pobierania pojedynczego pliku (i może to być blokowanie ładowania ważnej strony)
* konto za czas spędzony na analizie dodatkowego kodu JS, który właśnie ściągnął z serwera, gdy może nie być nawet wymagany w tym momencie.Silniki javascript są coraz szybsze, ale wciąż jest prawdą, że znaczny czas spędzany jest na analizie kodu javascript.

więc, w skrócie odpowiedź brzmi - „to jest zawsze gra kompromis i znając kodu oraz pomaga” :)

http://tomdale.net/2012/01/amd-is-not-the-answer/ jest interesującym odczytu na podobnych linii.

Powiązane problemy