據我所知,Codigniter緩存適用於匹配URI。因此,如果緩存設置在包含表單的方法中,它將始終顯示空表單。選擇Codeigniter輸出 - 從緩存或渲染視圖
有沒有辦法設置是否顯示緩存文件或渲染視圖?
僞代碼:
if form validation = FALSE
serve cache file
else
render view
endif
也就是有沒有辦法來檢查是否正在顯示的形式,因爲它是第一個負載或者正在顯示它,因爲有錯誤?
據我所知,Codigniter緩存適用於匹配URI。因此,如果緩存設置在包含表單的方法中,它將始終顯示空表單。選擇Codeigniter輸出 - 從緩存或渲染視圖
有沒有辦法設置是否顯示緩存文件或渲染視圖?
僞代碼:
if form validation = FALSE
serve cache file
else
render view
endif
也就是有沒有辦法來檢查是否正在顯示的形式,因爲它是第一個負載或者正在顯示它,因爲有錯誤?
使用Codeigniter緩存方式,不可能有條件地從緩存中顯示。因爲在調用控制器之前,Codeigniter決定從緩存中顯示。
你可以做的是使用你的自定義緩存庫。 Codeigniter有幾個緩存庫。您可以嘗試https://github.com/philsturgeon/codeigniter-cache
您可以根據輸出提供的條件有條件地設置緩存。雖然它不會從緩存中呈現您的「視圖」,但如果您對錶單執行了大量處理,它將顯着提高您的性能。
例如,你可以在你控制器做到這一點:
$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));
這樣,你可以使用類似文件緩存,分佈式緩存或APC緩存的變量。