Vylepšené server-side kešování v PHP
Odesláno v November 19, 2008 | Kategorie Apache, Internetové aplikace, Javascript, Jazykový koutek, PHP, Programování | 1 Comment
V nedávném příspěvku jsem psal o velmi důležité funkci – cachování na straně PHP skripu, které je užitečné zejména v případě dlouhých databázových dotazů nebo složitě parsovaných vstupních dat třeba z webové služby.
Někdy je nutné data načíst znovu ještě před expirací cache, např. při ladění skriptu. Občas se něco nepovede i při běžném provozu a uživateli bychom měli umožnit obnovení celé stránky pomocí CTRL+F5 i za cenu, že zpracování stránky bude trvat déle.
Použijeme skript původního příkladu, ale do podmínky pro načtení
-
<?php
-
if ( !$cachedText = ctiCache( 'narocnyBlok' , 600 ))
-
?>
přidáme ještě testování na parametr HTTP_PRAGMA, kterým nám server naznačuje, že si uživatel nepřeje načítat data z cache.
-
<?php
-
if (($_SERVER['HTTP_PRAGMA']=='no-cache') || !$cachedText = ctiCache( 'narocnyBlok' , 600 )) {
-
}?>
Pokud ještě zaměníme v názvu bloku ‘narocnyblok’ za md5 hashované parametry, máme už dokonalý kešovací skript.
-
<?php
-
if (($_SERVER['HTTP_PRAGMA']=='no-cache') || !$cachedText = ctiCache( 'cblok'.md5($vstupniParametry)) , 600 )) {
-
zpracujDlouhySkript($vstupniParametry);
-
}
-
?>
Komentáře
One Response to “Vylepšené server-side kešování v PHP”
Váš komentář:









Ale to je dost dobrý nápad!