10

Zamierzam wdrożyć rozwiązanie do łączenia wielu plików js/css do pojedynczych plików w moim projekcie MVC, ale obecnie wątpię między dwóch następujących możliwości:Jakieś doświadczenie łączące JS/CSS w MVC?

Telerik Rozszerzenia dla ASP.NET MVC (www. telerik.com/products/aspnet-mvc.aspx)

  • Obsługuje łączenie wielu plików w jednym żądaniu
  • Obsługuje grupy aktywów internetowych
  • Obsługuje grupy buforowania
  • buforowania jest wyłączony, gdy aplikacja jest w trybie debugowania
  • Grupa środków muszą być określone w masterpage lub (częściowy) widok
  • wspiera gzip
  • wspiera CDN
  • więcej niż tylko na ściskanie/roztwór połączenie (np . JQuery pomocnicy)

Combres - Webform & MVC po stronie klienta zasobów Kombajny Biblioteka (combres.codeplex.com)

  • Obsługuje łączenie wielu plików w jednym żądaniu
  • Obsługuje zasoby minifying
  • Obsługuje grupy zasobów internetowych
  • Obsługuje buforowanie grup
  • Sup Porty wersje grupach (unieważnia cache przeglądarki i cache serwera)
  • Obsługuje DebugMode (wyłącza buforowanie/minifying)
  • grup aktywów musi być zdefiniowany w sekcji web config
  • Obsługuje kompresję GZip
  • Niestandardowy trasy należy dodać
  • Obsługuje niestandardowe filtry
  • używa biblioteki YUI Compressor

Czy ktoś ma doświadczenie wagowo z jednym z tych, a może innym rozwiązaniem łączącym? Szczególnie interesują mnie wyniki YSlow (przed i po) i/lub statystyki kompresji/wykonania.

+0

Sądziłem, że mniej osób łączy te pliki w 1, ponieważ nowsze przeglądarki mogą je dziś pobrać równolegle. Ponadto, obszary odnoszące się do różnych części witryny mogą być ładowane szybciej, a następnie nadal buforowane do następnego razu, gdy są potrzebne. Pomaga to nawet uniknąć kolizji JavaScript. Myślę, że kategoria YSlow jest trochę przestarzała. – David

+0

Zgadzam się z tobą, że połączenie wszystkich plików w 1 nie jest już najbardziej wydajną opcją ze względu na połączenia równoległe, ale wciąż mamy do czynienia z rozsądną liczbą użytkowników

Odpowiedz

1

Czy planujesz używać rozszerzenia Telerik MVC, gdy staną się dostępne? Jeśli tak, to ich kombinator skryptów wydaje się być naturalnym wyborem, ponieważ ich widżety integrują się z nim ...

Jeśli zamierzasz używać skryptów i zasobów css z wielu źródeł, to co powiesz na staromodny budować skrypt w wybranym środowisku kompilacji?

  • Generalnie łatwe jest skonfigurowanie narzędzia do kompilacji w celu scalenia plików tekstowych i uruchomienia zewnętrznych kompresorów.
  • Używanie narzędzia do kompilacji jest naturalnym rozwiązaniem do ciągłej integracji i wdrażania jednoetapowego.
  • Można również łatwo wykonywać wyświetlanie plików statycznych z poziomu separate cookie-less domain, aby uzyskać maksymalną prędkość pobierania i minimalne obciążenie serwera.
  • W razie potrzeby ułatwi to dodanie numeru CDN. (Roztwór AFAIK Teleriks może link do pliku już dostępnych na CDN, ale nie może minify lokalnego pliku i przesłać go do CDN.)

Jestem szczególnie zainteresowany YSlow punktów (przed i po) i/lub statystyki kompresji/wydajności.

Nie martw się zbytnio o kilka procent różnic w uzyskanej kompresji lub pojedynczy nagłówek HTTP, który nie jest bezwzględnie potrzebny. Jeśli połączysz pliki w miarę możliwości, zminimalizuj białe znaki, włącz kompresję HTTP i ustaw odpowiednie nagłówki buforowania; to jesteś daleko od przeciętnego stronie tam ...

Jeśli wolisz zachować minifikacji wewnątrz MVC to sprowadza się do dojrzałości IMHO biblioteki. Nie wiem, który z nich powinien być teraz najlepszym wyborem. Ale spójrz także na IncludeCombiner; to jest part of MVCContrib now i jako taki dostanie dużo ekspozycji w przyszłości.

+0

Zdecydowałem się użyć nowej wersji Web Asset Managera z Telerik MVC Extensions, głównie ze względu na dodatkowe opcje najnowszej wersji (np. Definiowanie grup aktywów Płynnie w kodzie lub konfiguracji internetowej). Korzystamy również z komponentów telerik i oczekuję i mam nadzieję, że wiele z tych komponentów (asp.net ajax) stanie się w niedalekiej przyszłości "przyjaznych dla MVC" i wykorzysta to samo rozwiązanie Web Assets Management. –

1

Używam this approach (faktycznie, myślę, że to jest to, co ma pod nim telerik).
Działa jak urok.

+0

Tak, uważam, że rozszerzenia Telerik dla ASP.NET MVC są oparte na tym podejściu, z kilkoma możliwościami. –

+0

Ale nie mogę podać prawdziwej odpowiedzi, ponieważ nie użyłem Combres. Po prostu nie musiałem. :) –

+0

@Anis L: Tak, Kazi Manzur jest jednym z twórców rozszerzeń Telerik MVC, więc tak, właśnie tego używa Telerik (może w nieco teraz zaktualizowanej wersji). –

3

Można użyć MvcContrib.IncludeHandling. Obsługuje:

  • Łączenie wielu plików w jednym żądaniu
  • Łączenie CSS
  • Łączenie JS
  • Debug-mode poprzez MvcContrib.Filters.DebugFilter
  • Cache-nagłówki
  • GZip/Deflate kompresja
  • Konfiguracja
  • Zamiana domyślnych implementacji t on to zależy od twoich własnych implementacji (na przykład; zamień pamięć podręczną na własną implementację)
  • Rejestracja w widokach oraz wzorcach - zignoruje duplikaty rejestracji.

Wszystko dzieje się w czasie wykonywania; nie są wymagane żadne kroki konstrukcyjne itp. Nie jest wymagana niestandardowa trasa. Używa YUICompressor.

+0

Och, duh; nie przeczytałem, że już to sprawdziłeś. :-) –

Powiązane problemy