本文主要是介绍Yii2详解HTTP缓存,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概述
这里只是简单讲一下用法,如果想更详细的了解,去看 官方手册 比较好。
除了使用服务器端缓存外, Web 应用还可以利用客户端 缓存去节省相同页面内容的生成和传输时间。通过配置 yii\filters\HttpCache
过滤器,控制器操作渲染的内容就能 缓存在客户端。
示例说明
class TestController extends Controller{// 该方法会在其他方法之前执行public function behaviors(){// 声明缓存配置return [ // 需要注意的这里是二维数组['class' => 'yii\filters\HttpCache', // 设置需要加载的缓存文件'only' => ['index'], // 设置需要缓存的控制器'lastModified' => function(){ // 设置 Last-Modified 头return 1548922;},'etagSeed' => function (){ // 设置 ETag 头return 'hello';}]];}public function actionIndex(){return $this->renderPartial('index');}public function actionTest(){echo 789;}
}
参数说明
class
:定义需要加载的缓存配置文件。only
:定义仅仅只需要在哪个页面设置缓存。如上列举例中,仅仅只有index页面会缓存下来,其他页面则不会缓存。lastModified
:使用时间戳标明页面自上次客户端缓存后是否被修改过。etagSeed
:通过对比客户端的哈希值和服务器端生成的哈 希值,浏览器就能判断页面是否被修改过,进而决定是否应该重新传输内容。
注意
当 lastModified
和 etagSeed
同时被设置时,lastModified
的设置可以说无效,因为会始终按照 etagSeed
的改变而改变。
这篇关于Yii2详解HTTP缓存的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!