2012-07-09 2 views
0

나는 Codigniter 캐시가 URI 일치와 관련하여 작동 함을 알고 있습니다. 따라서 캐싱이 양식을 포함하는 메소드에 설정된 경우 빈 양식이 항상 표시됩니다.Codeigniter 출력 선택 - 캐시 또는 렌더링보기에서

캐시 파일을 표시할지 또는보기를 렌더링 할지를 설정하는 방법이 있습니까?

의사 코드 :

if form validation = FALSE 
    serve cache file 
else 
    render view 
endif 

오차가 있기 때문에 표시되는 경우 또한 제 부하이기 때문에 형태가 표시되어 있는지 확인하는 방법이 나?

답변

1

Codeigniter 캐싱 방식을 사용하면 조건부로 캐시에서 표시 할 수 없습니다. Codeigniter는 컨트롤러 자체를 호출하기 전에 캐시에서 표시하기로 결정하기 때문입니다.

사용자가 할 수있는 것은 사용자 정의 캐싱 라이브러리를 사용하는 것입니다. Codeigniter에 대한 여러 캐싱 라이브러리가 있습니다. 시도해 볼 수 있습니다 https://github.com/philsturgeon/codeigniter-cache

0

결과에 관계없이 캐시를 조건부로 설정할 수 있습니다. 캐시에서 "보기"를 렌더링하지는 않지만 양식에 과도한 처리를 수행하면 성능이 크게 향상됩니다.

예를 들어, 당신은 당신의 컨트롤러이 작업을 수행 할 수 있습니다

$this->load->driver('cache'); 

if (!$this->form_validation->run()) 
{ 
    if (!$cache = $this->cache->get('some unique variable')) 
    { 
     $cache = $this->some_model->some_function(); 
     // Do your rendering here. 
    } 
} 

$this->load->view('some_view', array('data' => $cache)); 

당신이 당신의 변수를 캐시 파일 memcached를 캐싱, 또는 APC 같은 것을 사용할 수있는 방법을.