Jak przyspieszyć Ubercart (cache)?

Posiadaczom sklepów opartych na silniku Ubercart (moduł Drupala) na pewno znane są problemy z cache. Po włączeniu pamięci podręcznej mamy szereg problemów z koszykiem anonimowych użytkowników (np. jednemu klientowi jest pokazywany koszyk drugiego). Rozwiązaniem jest wyłączenie cache, co skutkuje znaczącym spowolnieniem witryny. Jak temu zaradzić?

Ubercart - włączone cache w systemie drupalSprawę załatwia odpowiednio skonfigurowany moduł Dynamic Cache.
W jego konfiguracji wpisujemy:


if (
 isset($_SESSION['uc_cart_id']) ||
 isset($_SESSION['ucga_order_id']) ||
 !empty($_POST)
 ) {
 $GLOBALS['conf']['cache'] = false;
}

Wyłączamy w ten sposób cache dla odwiedzających, którzy mają produkty w koszyku lub wysłali dane formularza metodą POST (np. właśnie dodali produkt do koszyka).

Wszyscy pozostali (czyli ponad 90% ruchu) korzystają z pamięci podręcznej.
Zaliczają się tu również m.in. roboty Google, które biorą szybkość wczytywania jako jeden z czynników przy ustalaniu rankingu :)

Po ustawieniu moduły warto przetestować stronę wchodząc na /dynamic_cache_test jako anonimowy użytkownik. Powinniśmy zobaczyć wersję CACHED. Gdy dodamy coś do koszyka i wrócimy na tę stronę, napis DYNAMIC będzie oznaczał że cache zostało wyłączone – zgodnie z założeniami.

Innym rozwiązaniem jest skorzystanie z Ubercart AJAX Cart, jednak wiążą się z tym pewne problemy – osobiście wybrałem więc rozwiązanie, które wydaje mi się bardziej eleganckie.

Oceń: 1 gwiazdka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>