Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kompresja JS/CSS
Forum PHP.pl > Inne > Hydepark
Armstrong
Hmm Zastanawia mnie jedno. Czy opłaca się kompresować CSS i JS? Jak to ogólnie wpływa na "szybkość". Czy stosujecie takowe kompresje? W ogóle są one pomocne?

Jeżeli temat już istniał, to przepraszam szukałem (pewnie nie zbyt dobrze).
LBO
Chodzi Tobie o kompresje HTTP (np. poprzez Apache'owy mod_deflate), czy o tzw minifikację (YUI Compressor)?
Armstrong
Konkretnie o usuniecie White-Spaces czyli o YUI Compressor
Mephistofeles
Jak dla mnie usunięcie białych znaków nie wpływa na szybkość, ale na pewno na transfer. Po co przesyłać niepotrzebne spacje i tabulatory...
vokiel
Zależy na jakim poziomie kompresji Ci zależy. Jeśli tylko białe znaki, to wystarczy nawet:
  1. preg_replace('/\s+/', ' ', file_get_contents('script.js'));
LBO
Czytałem kiedyś artykuł na ten temat. Autor zwrócił uwagę, że na ogólną szybkość strony wpływa kilka czynników:
1. Wielkość pobieranych plików.
2. Czas przygotowania tych plików (czyli np. dekompresji po mod_deflate).
3. Czas parsowania.
4. Czas wykonywania.

Minifikacja (usunięcie white-space) JS i CSS na pewno wpływa dobrze na na punkt 1. Nie ma żadnego wpływu na punkt 2. Prawdopodobnie przyśpiesza (minimalnie) przy punkcie 3, ale nigdy nie znalazłem niczego co by to potwierdziło - szczególnie, że przy językach skryptowych liczy się bardziej ilość tokenów niż wielkość pliku. Istnieje jeszcze opcja minifikacji w połączeniu z optymalizacją źródeł, a nawet ich zaciemnieniem (obfuscacja). Teoretycznie może to dać dodatkowego kopa punktowi 1 i 3.

Schodki zaczynają się gdy jednocześnie chcesz użyć kompresji i minifikacji. Mogą sobie wchodzić w paradę.

Oczywiście nie zawsze będziesz potrzebował tego typu optymalizacji np. gdy masz niewiele odwiedzin, lub twoje oryginalne style i skrypty są i tak niewielkie.





Za punkt 4 odpowiadają już same silniki JS wbudowane w przeglądarki, a te są coraz szybsze smile.gif
varez
@vokiel:
Twoj kod jest świetny, szczególnie jak mamy spacje w stringach w kodach JS..
vokiel
Tylko nie można mieć komentarzy przy użyciu //, trzeba używać /**/.

edit down:
Jeśli zrobił tak jak trzeba, dając jako replacement apostrof spacja apostrof to usunie tylko podwójne spacje (inne puste znaki też).
Tak czy inaczej skrypt js nie jest miejscem do umieszczania treści opisów, komunikatów. Jeśli stosuje się zasadę oddzielenia logiki od treści to nie ma problemu. Oddzielny plik z komunikatami, który nie jest kompresowany i nie ma problemów.
pyro
@vokiel, chyba nie załapałeś co @varez chciał Ci przekazać hehe.

To była ironia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.