Autor Zpráva
Sylar
Profil
Zdravím,
má někdo zkušenosti s tím, jak se obvykle řeší cache u e-shopů, kde je vysoká dynamika kódu? Mám tím na mysli třeba jak řešit výpis produktů v případě, že má e-shop možnost změny měny? Měna většinou není přímo v URL (a cache se ukládá dle URL) a na stejné URL tedy může být výpis produktů ve více měnách.

Dále, v hlavičce e-shopu je většinou informace kolik má v košíku uživatel produktů a za jakou cenu, příp. malá tabulka s náhledem produktů. Celá hlavička by se jinak dala cachovat, ale kvůli tomuto to nejde. Jak se toto řeší? Lze třeba nějak "vyčlenit" tento element z cache?

Hodně dynamické stránky, kde je vždy potřeba aktuální obsah - např. různé formuláře, vyhledávání nebo detail košíku - pokladna se z cache úplně vyloučí nebo je lze nějak částečně cachovat?

Díky za názory a tipy.
Tomášeek
Profil
Sylar:
Moc nechápu, co má být cílem dotazu, neuvedl jsi platformu, na které eshop běží. Pokud je dotaz obecný, zda se dají cachovat i jednotlivé části webu, tak ano, cachovat se dají jednotlivé části webu - dělá se to běžně.
Sylar
Profil
Tomášeek:
Ano, dotaz je obecný a chtěl bych pochopit jak cache funguje. Např. u zmíněné hlavičky - celá hlavička jde cachovat, jen jeden element z ní je třeba vypustit - zmíněný přehled košíku. Jak se toto v praxi řeší? Je nutné prostě cachovat část před element a část po? Jinak to nejde?

Stejná situace je potom třeba na výpise produktů v kategorii. Celý výpis by se dal cachovat najednou, pouze ceny produktů je třeba z cache vyjmout, kvůli možnosti změny měny. Jak lze toto vyřešit? Nebo se jednoduše musí uložit zvlášť výpis produktů pro každou měnu v e-shopu?

A poslední dotaz, jak se obvykle řeší stránky, kde se používá např. GET, POST či SESSION? Typicky třeba stránky s formulářem - při prvním příchodu na stránku se stránka uloží do cache, uživatel vyplní formulář, potvrdí jej a při dalším načtení již potřebuji, aby stránka vyhodila aktuální údaje o stavu formuláře, tj. ne aby se natáhla původní cachovaná verze. Je tedy tyto stránky lepší z cache vyloučit?

Omlouvám se, možná se ptám blbě, ale chtěl bych pochopit, jak se obecně řeší tyto případy, které cahování komplikují.
Kajman
Profil
Dokáži si představit, že by jako cache šel vygenerovat php soubor, který bude mít hlavičku vygenerovanou (html bez php), jen měněná část bude stále jako php kód.

Ale u hlavičky bych spíše čekal, že to bude součást šablony, že tam není nic, co by se počítalo a hodilo by se ten náročný výpočet cachovat. A produkt samozřejmě můžete mít v cache vícekrát, pro každou měnu zvlášť, stačí si správně stanovit klíče, podle kterých se v cache hledá.

Pokud s tím začínáte, možná se nejdříve mrkněte na nějaké knihovny, jak to řeší ony. Např.
doc.nette.org/cs/3.0/caching

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0