Mamy wiele małych plików CSS i JS, dlatego włączenie scalania wydaje się być dobrym wyborem.
Wiele plików CSS i JS jest używanych na każdej stronie (strona główna, strona kategorii, strona szczegółów produktu).
Ilekroć widzieliśmy, że inny scalony plik jest ładowany ponownie na każdej stronie, nawet zawarty CSS musi się nakładać.
Jak możemy tego uniknąć i ponownie wykorzystać więcej danych?
css
javascript
frontend
Alex
źródło
źródło
.css
i.js
pliki. W domyślnej instalacji Magento.css
pliki są w zasadzie takie same na całym świecie, więc scalony plik ma identyczny skrót. Ale.js
to bardzo się różni - dlatego istnieje nowo połączony plik dla stron produktów i stron kategorii i tak dalej - zawsze zawierający pełną prototypową bibliotekę lib.Odpowiedzi:
Krótka odpowiedź: nigdy nie włączaj funkcji łączenia JS / CSS Magento. Ogólnie rzecz biorąc, gorsza jest wydajność w całym cyklu życia typowej kasy niż wysyłanie każdego zasobu osobno.
Długa odpowiedź: powinieneś podawać użytkownikom tylko jeden plik CSS. Wiele plików blokuje renderowanie do momentu pobrania całego CSS. Jeśli nie podajesz dużej ilości CSS, dobrze jest wysłać wszystko naraz, wtedy przeglądarka ma to w pamięci podręcznej. Korzystanie z preprocesora takiego jak Sass lub LESS może wprowadzić ten krok w proces kompilacji, zamiast pozwolić Magento robić to nieefektywnie.
W przypadku JS idealnie byłoby nie łączyć tych po stronie serwera. Programy ładujące skrypty po stronie klienta, takie jak AMD / RequireJS, są lepszym wyborem i pomagają zarządzać zależnościami, czego nie robi układ XML Magento. W prawdziwym świecie Magento wpada w skrypty w kilku punktach w kasie. Nadal lepiej jest wziąć początkowe trafienie strony ładowaniem wielu żądań i mieć później oddzielne, ale buforowane zasoby.
Rozszerzenie Fooman Speedster Advanced to najlepszy sposób na inteligentne łączenie zasobów bez powielania (dzisiaj).
Jesteś nieco ograniczony przez architekturę Magento 1.x, która zaczyna się od kupy złych praktyk w zakresie wydajności frontendu. Zmiana kursu tego statku nie jest realistyczna. Wnieś wkład do Magento 2.
źródło
Korzystamy z rozszerzenia Fooman Speedster Magento . To wspaniałe rozszerzenie obsługuje scalanie plików CSS i JS w celu zwiększenia wydajności strony.
Ze strony:
źródło
uglifyjs --compress
lepiej korzystać z systemu i lepiej radzić sobie z komentarzami, możesz uzyskać dodatkową poprawę o około 4% mniejszą dzięki mojemu kodowi. używam uglifyjs v3 z węzła.