0

私が理解しているように、Codigniter キャッシュは URI の照合で機能します。したがって、フォームを含むメソッドでキャッシュが設定されている場合、常に空のフォームが表示されます。

キャッシュ ファイルを表示するか、ビューをレンダリングするかを設定する方法はありますか?

擬似コード:

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

また、最初の読み込みでフォームが表示されているのか、エラーで表示されているのかを確認する方法はありますか?

4

2 に答える 2

1

Codeigniter キャッシング方法を使用すると、条件付きでキャッシュから表示することはできません。Codeigniter は、コントローラー自体を呼び出す前にキャッシュから表示することを決定するためです。

できることは、カスタム キャッシング ライブラリを使用することです。Codeigniter 用のキャッシング ライブラリがいくつかあります。https://github.com/philsturgeon/codeigniter-cacheを試すことができます

于 2012-07-09T12:17:58.167 に答える
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 などを使用して変数をキャッシュできます。

于 2012-07-09T14:23:23.827 に答える