PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

Yii框架官方指南系列31——缓存:页面缓存

黄舟
黄舟 原创
2017-02-15 09:19:44 764浏览



页面缓存指的是缓存整个页面的内容。页面缓存可以发生在不同的地方。 例如,通过选择适当的页面头,客户端的浏览器可能会缓存网页浏览有限时间。 Web应用程序本身也可以在缓存中存储网页内容。 在本节中,我们侧重于后一种办法。

页面缓存可以被看作是 片段缓存一个特殊情况 。 由于网页内容是往往通过应用布局来生成,如果我们只是简单的在布局中调用beginCache() 和endCache(),将无法正常工作。 这是因为布局在CController::render()方法里的加载是在页面内容产生之后。

如果想要缓存整个页面,我们应该跳过产生网页内容的动作执行。我们可以使用COutputCache作为动作 过滤器来完成这一任务。下面的代码演示如何配置缓存过滤器:


public function filters()
{
    return array(
        array(
            'COutputCache',
            'duration'=>100,
            'varyByParam'=>array('id'),
        ),
    );
}

上述过滤器配置会使过滤器适用于控制器中的所有行动。 我们可能会限制它在一个或几个行动通过使用插件操作器。 更多的细节中可以看过滤器。

Tip: 我们可以使用COutputCache作为一个过滤器,因为它从CFilterWidget继承过来, 这意味着它是一个工具(widget)和一个过滤器。事实上,widget的工作方式和过滤器非常相似: 工具widget (过滤器filter)是在action动作里的内容执行前执行,在执行后结束。


以上就是Yii框架官方指南系列31——缓存:页面缓存的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。