2012-05-18 33 views
5

Mam aplikację typu blog zbudowaną na CI 2.1.0. Kiedy dodaćBuforowanie sygnatur kodu - sugestie odświeżania po nowym wpisie

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

do mojego kontrolera, CI prawidłowo buforuje stronę, a ładuje się szybko.

Mój problem polega na tym, że jeśli ktoś komentuje ten wpis, komentarz nie pojawi się, dopóki pamięć podręczna nie wygaśnie.

Zastanawiam się, czy ktoś ma wskazówek, w jaki sposób zmusić odświeżania pamięci podręcznej za każdym razem gdy następuje zmiana tej konkretnej strony, lub jeśli edit post jest wykonany itp

góry dziękuję.

Odpowiedz

5

Z dokumentacji CodeIgniter:

Jeśli nie chcesz buforować plik można usunąć tag buforowania i nie będzie już być odświeżane po jego wygaśnięciu. Uwaga: Usunięcie znacznika nie spowoduje natychmiastowego usunięcia pamięci podręcznej. Będzie musiało normalnie wygasać . Jeśli chcesz go wcześniej usunąć, musisz ręcznie usunąć z niego swój folder pamięci podręcznej.

Dla programowo usunąć plik pamięci podręcznej można użyć

CodeIgniter Cache Helper

Tutaj funkcja ta spowoduje usunięcie pliku pamięci podręcznej

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

Oczywiście nie chcę ręcznie usuwać, ponieważ nie jestem pewien, który z zapisanych w pamięci podręcznej plików wskazuje na stronę, która została zaktualizowana - w jaki sposób można selektywnie usunąć ten plik przy aktualizacji programowo? – pepe