2010-08-31 15 views
7

Nasze struktury plików są całkiem dobre, organizując funkcje w oddzielnych folderach. Moje pytanie brzmi: jak inni pracują nad aplikacjami, które obejmują ponad 500 plików JavaScript.Praca nad dużymi aplikacjami JavaScript

Napisaliśmy wtyczkę maven, aby połączyć te pliki razem (działa również kompresor YUI). Jednak wymaga to 3-10 sekund kompilacji dla każdej zmiany.

Czy ten krok jest niezbędny do zorganizowania dużej aplikacji, mam wrażenie, że dobrze zorganizowany plik HTML wciągający wszystkie te zasoby zaoszczędziłby mi 45 minut każdego dnia.

+0

Shold naprawdę myślisz o użyciu lampy błyskowej lub silverlight – Aviatrix

+0

To dużo JavaScriptu! – ChaosPandion

+2

Zobacz informacje na temat LabJS, RequireJS, może dojo. Istnieją wyrafinowane rozwiązania zależności. – Pointy

Odpowiedz

1

Dla mojego własnego framework projects, zwykle monitorowania, testowania lub serwisowania na stronie w celu orkiestrowania innych zestawów narzędzi (ale nie tak wysokiej jak liczba plików), moje podejście było ukierunkowane na indywidualne i dynamicznie ładowane pliki podczas programowania. Na potrzeby testu wykonam jedną kompilację, aby skompresować i zmodyfikować poszczególne pliki, i przetestować poszczególne pliki ponownie, ponieważ, w zależności od kolejności łączenia, techniki kompresji i przeglądarki, mogę skończyć z błędem skryptu i jest to ból wykop go z jednego pliku potworów. Po trzecie łączę się i testuję jeszcze raz.

W odwołaniu do HTML albo celuję w nieskompresowany plik, który ładuje określone zależności, albo plik złożony. Oddzielny plik bootstrap określa zależności, które są zawarte w pliku złożonym lub ładowane dynamicznie w razie potrzeby.

W ten sposób mogę dodać lub zmienić plik i rozpocząć tworzenie i testowanie bez odbudowy.

+0

Dzięki, świetne porady tutaj. Mogę również spróbować włączyć rozwiązanie zależności. – Drew

0

Rozwiązanie może łączyć się i kompresować tylko w celu testowania użytkownika i produkcji.

Dla rozwoju najlepiej jest po prostu zaimportować je wszystkie do pliku HTML. Przyspiesza proces deweloperski, a także upraszcza debugowanie. Pozwala również przeglądarce na buforowanie niektórych z tych plików.

Gdy nie można polegać na kopiach w pamięci podręcznej (co przy 500 plikach, nie wydaje mi się, że będzie bardzo często), spowolni to ładowanie.

0

Prawdopodobnie można zaoszczędzić wiele czasu, uruchamiając tylko sprężarkę w produkcji. Kompresor YUI jest notorycznie powolny, ponieważ używa interpretatora Java Rhino, aby rzeczywiście parsować JavaScript i analizować go itp.

Powiązane problemy