2012-05-18 18 views
5

Tengo una aplicación de tipo blog basada en CI 2.1.0. Cuando agregoAlmacenamiento en memoria caché de Codeigniter: sugerencias para actualizar después de una publicación nueva

$this->output->cache(5); 

a mi controlador, CI cachés correctamente la página, y se carga rápidamente.

Mi problema es que si alguien comenta sobre esa publicación, el comentario no se mostrará hasta que expire la caché.

Me pregunto si alguien tiene sugerencias sobre cómo forzar una actualización cada vez que la memoria caché se produce un cambio a esa página específica, o si se hace una entrada de edición, etc.

Gracias de antemano.

Respuesta

5

De la documentación CodeIgniter:

Si ya no desea almacenar en caché un archivo se puede quitar la etiqueta de almacenamiento en caché y ya no se actualizará cuando caduque. Nota: Al eliminar la etiqueta , no se eliminará la memoria caché inmediatamente. Tendrá que caducar normalmente . Si necesita eliminarlo antes, necesitará hacerlo manualmente para eliminarlo de su carpeta de caché.

Para programáticamente eliminar el archivo de caché puede utilizar

CodeIgniter Cache Helper

Aquí esta función borrará el archivo de caché

function delete_cache($uri_string) 
    { 
     $CI =& get_instance(); 
     $path = $CI->config->item('cache_path'); 
     $cache_path = ($path == '') ? APPPATH.'cache/' : $path; 

     $uri = $CI->config->item('base_url'). 
      $CI->config->item('index_page'). 
      $uri_string; 

     $cache_path .= md5($uri); 

     if (file_exists($cache_path)) 
     { 
      return unlink($cache_path); 
     } 
     else 
     { 
      return TRUE; 
     } 
    } 
+0

Por supuesto, no quiero eliminar manualmente, ya que no estoy seguro de que, incluso, de los archivos en caché apunta a la página que se actualizó, ¿cómo se puede eliminar selectivamente ese archivo en la actualización mediante programación? – pepe

Cuestiones relacionadas