-
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
提交
取消