Daniel OG
per en 8 d'Abril 2011
1,243 Vistes

Amb PHP existeixen mecanismes millors, com APC, Memcache, etc...  però aquest és molt més simple, i el que s'usa a flog.cat per fer caxé d'algunes coses com les últimes novetats de "flog.cat en directe" i reduir el temps de la càrrega de la pàgina inicial (per usuaris no loguejats).

Per solucions més complexes o pesades, cal implementar altres sistemes.

El següent sistema està basat en un arxiu i simplement gestiona l'escriptura en caxé, el control del flux del caxé, actualització i la lectura de caxé.

if($login) $cache=false;//els usuaris loguejats no tenen caxé xq la seva query està en funció de la sessió
else {
    $cache=(
rand(0,2)>0); //agafa de caxé el 66% de vegades
}

if(!$cache) { //sense caxé - regenerar
       
    if(!$login) ob_start();  //inicia el buffer d'output
   
    if($login) $sql='SELECT ................ ';
    else $sql='SELECT ................ ';
    $query=query($sql);
    while($row=mysql_fetch_assoc($query)) {
        /* .....  imprimir html ..... */
    }
   
    if(!$login) file_put_contents('arxiu_caxe.ch',ob_get_flush());  //enviem a l'arxiu de caxé i imprimim alhora (get_flush)

}
else readfile('arxiu_caxe.ch');  //caxé - imprimir html caxejat de fitxer, sense més

?>

Publicat a: Personal
Sigues el primer a qui li agrada això.