Konkurencja jest trudna, ale jest dobra dla innowacji! Mimo, że Page Cache Ultimate zawsze oferował lepszy cache niż konkurencja, stawało się to skomplikowane do wyjaśnienia klientom. Przyjrzałem się więc tej funkcji, którą miałem w głowie od dawna: nie ładowanie CMS Prestashop w ogóle, gdy dostępny jest cache, innymi słowy, serwowanie stron jako plików statycznych!

Stawki

Osiągnięcie takiego wyczynu drastycznie zmniejszyłoby TTFB, ponieważ statyczny plik jest zwykle serwowany w mniej niż 100ms (i jestem bardzo szeroki).

Trudności

Problem polega na tym, że ta sama strona nie ma takiej samej zawartości w zależności od gościa, który żąda jej wyświetlenia. Pod uwagę branych jest kilka parametrów: waluta (euro, dolary itp.), grupy użytkowników odwiedzających, kraj (w przypadku ograniczeń dostępu), podatki, które należy zastosować itp. Wszystko to tworzy coś, co nazywam kontekstem.

Nie da się poznać tego kontekstu bez użycia Prestashop, więc jak to zrobić?

Rozwiązanie

Pierwsze wyświetlenie nie może być wykonane bez załadowania Prestashop, więc będzie działać tak jak wcześniej, używając pamięci podręcznej po stronie serwera, jeśli jest dostępna. Moduł skorzysta z tego pierwszego wyświetlenia, aby ustawić plik cookie 'jpresta_cache_context', aby zidentyfikować kontekst do użycia!

Dzięki temu ciasteczku możliwe jest teraz zwrócenie właściwego pliku odpowiadającego adresowi URL strony.

Technicznie rzecz biorąc, nazwa pliku pamięci podręcznej będzie hashem (MD5) adresu URL. Ponieważ nie może to być obliczone przez Apache w prosty sposób, moduł użyje małego niezależnego i bardzo szybkiego skryptu PHP do zwrócenia statycznego pliku do przeglądarki. Wykorzystujemy to, aby odesłać już skompresowaną, zapisaną wersję strony, oszczędza to Apache'owi konieczności wykonywania tej czynności.

Niesamowite rezultaty!

To jest po prostu niesamowite, różnica w prędkości jest ogromna, moje pierwsze testy dają mi TTFB niższe niż 10ms!

Na stronie JPresta.com, która korzysta z hostingu współdzielonego, średni TTFB wynosi teraz 100ms!

TTFB with Page Cache Ultimate

Korzystając z okazji dodałem statystyki wykorzystania poszczególnych typów cache, oto np. rozkład na JPresta.com:

Prestashop static cache use

Aby skorzystać z tej nowej funkcji wystarczy zaktualizować moduł, jeśli Twój okres wsparcia i aktualizacji jest jeszcze aktywny, jeśli nie to możesz go przedłużyć, a jeśli nie masz jeszcze licencji możesz kupić Page Cache Ultimate . Pour aller plus loin dans l'optimisation de votre boutique Prestashop vous pouvez aussi opter pour Speed Pack (Page Cache Ultimate + WEBP + SQL Profiling + Database cleaning) qui inclus Page Cache Ultimate. Je vous conseille aussi notre thème Pochodzenie JPresta zoptymalizowany pod kątem prędkości i Core Web Vitals!