-
DB依赖关系
查看全部 -
缓存文件依赖和表达式依赖,当依赖的结果比如文件修改时间改变或者表达式结果改变时缓存失效。
查看全部 -
缓存有效期设置
查看全部 -
数据缓存方法
查看全部 -
调用组件时会调用__get()方法,然后再返回调用的组件,实现组件的延迟加载
查看全部 -
类的映射表机制
查看全部 -
spl_autoload_register([$classname,$functionname])注册自动加载函数,实现类的延迟加载
查看全部 -
缓存文件依赖以及表达式依赖
查看全部 -
yii框架通过PHP __get方法来实现组件的延迟加载。而不需要一开始就加载组件而是调用了该类后再加载查看全部
-
__get方法查看全部
-
表里边的内容是字段的备注
查看全部 -
<?php namespace app\controllers; use yii\web\Controller; class HelloController extends Controller{ public function behaviors(){ return [ [ 'class'=>'yii\filters\HttpCache', // 告诉浏览器,缓存服务器发送的数据 // 下面的代码 'lastModified'=>function(){ // 通过这生成的时间戳,来比对数据 return filemtime('hw.txt'); }, 'etagSeed'=>function(){ // etag $fp = fopen('hw.txt', 'r'); $title = fgets($fp); fclose($fp); return $title; } ] ]; } public function actionIndex(){ return $this->renderPartial('index'); } }
查看全部 -
HelloController.php文件
<?php namespace app\controllers; use yii\web\Controller; class HelloController extends Controller{ public function behaviors(){ return [ [ 'class'=>'yii\filters\HttpCache', // 告诉浏览器,缓存服务器发送的数据 // 下面的代码 'lastModified'=>function(){ // 通过这生成的时间戳,来比对数据 return 1432817567; }, 'etagSeed'=>function(){ // etag return 'etagseed21'; } ] ]; } public function actionIndex(){ return $this->renderPartial('index'); } }
查看全部 -
问题2:服务器是怎样对比浏览器请求数据和服务器数据的区别呢?对比的依据是什么呢?
通过如下代码实现(HelloController.php文件中部分代码如下)
public function behaviors(){ return [ [ 'class'=>'yii\filters\HttpCache', // 告诉浏览器,缓存服务器发送的数据 // 下面的代码↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 'lastModified'=>function(){ // 通过这生成的时间戳,来比对数据 return 1432817564; } ] ]; }
HelloController.php文件代码
<?php namespace app\controllers; use yii\web\Controller; class HelloController extends Controller{ public function behaviors(){ return [ [ 'class'=>'yii\filters\HttpCache', // 告诉浏览器,缓存服务器发送的数据 // 下面的代码↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 'lastModified'=>function(){ // 通过这生成的时间戳,来比对数据 return 1432817564; } ] ]; } public function actionIndex(){ return $this->renderPartial('index'); } }
查看全部 -
问题1:服务器怎么告诉浏览器缓存服务器发送的数据呢?
服务器向浏览器发送数据,会在数据头部添加Cache-Control字段,告诉浏览器缓存数据;服务器是通过如下代码告诉浏览器缓存服务器发送的数据(HelloController.php文件中部分代码如下)
public function behaviors(){ // 在调用其他action方法前调用behaviors方法 return [ [ 'class'=>'yii\filters\HttpCache', // 告诉浏览器,缓存服务器发送的数据 'lastModified'=>function(){ return 1432817564; } ] ]; }
HelloController.php文件代码
<?php namespace app\controllers; use yii\web\Controller; class HelloController extends Controller{ public function behaviors(){ // 在调用其他action方法前调用behaviors方法 return [ [ 'class'=>'yii\filters\HttpCache', // 告诉浏览器,缓存服务器发送的数据 'lastModified'=>function(){ return 1432817564; } ] ]; } public function actionIndex(){ echo '海草舞'; } }
查看全部
举报
0/150
提交
取消