| Autor | Zpráva | ||
|---|---|---|---|
| Str4wberry Profil |
Jelikož se stránky s Nette načítají pomalu, nabízí se použít keš.
To funguje hezky a jednoduše (stačí obalit layout šablony do {cache}) a výsledné HTML jednotlivých stránek se automaticky ukládá do jednotlivých souborů.
A tak si říkám, proč při požadavku na (už kešovanou) stránku zbytečně zdržovat načítání zapínáním Nette, když by stačilo akorát vysypat soubor z keše. Nějak takto: if (file_exists("cache/pozadovana-url") {
// vypsání z keše
}
else {
// načtení Nette a běžné zpracování požadavku + vytvoření keše
}Ale jak se dopátrat k tomu souboru; jeho název je totiž nejspíš nějaký hash… Existuje nějaké elegantní řešení? Jak byste to řešili vy? |
||
| DJ Miky Profil |
#2 · Zasláno: 28. 6. 2013, 11:34:06
Mělo by stačit explicitně specifikovat nějaký název kešovaného bloku pomocí
{cache $key}: http://doc.nette.org/cs/caching#toc-cachovani-v-sablonach
Klíč pak bude jeho MD5 hash (případně MD5 hash ze serialize(), pokud to není skalár): https://github.com/nette/nette/blob/master/Nette/Caching/Cache.php#L282
A název souboru bude mít podtržítko na začátku: https://github.com/nette/nette/blob/master/Nette/Caching/Storages/FileStorage.php#L389 Jestli je to dobrý nápad nebo ne, to nedokážu posoudit. |
||
| Str4wberry Profil |
#3 · Zasláno: 28. 6. 2013, 12:14:45
Děkuji za radu. Bohužel to vypadá, že to takto nepůjde. Ten soubor má při každém vytvoření cache (po smazání veškeré cache) jiný název, takže to asi „
_md5(název)“ nebude.
|
||
|
Časová prodleva: 13 let
|
|||
0