-
cache緩存組件的操作查看全部
-
Yii2 中應用自動加載類文件查看全部
-
性能優化第二層次,自動加載所需文件,spl_autoload_register()查看全部
-
性能優化第一層次,手動加載需要的文件。查看全部
-
hw.txt的正確路徑應該是在basic/web目錄下,不用加具體的路徑名。入口文件index.php也是在該目錄下查看全部
-
status=304 not modified查看全部
-
緩存是緩存在瀏覽器這一端的查看全部
-
http緩存 瀏覽器向服務器請求數據,如果服務器的數據沒有發生變化,那么無論瀏覽器發送多少請求 服務器發送的數據都是一樣的,這樣的話會對服務器資源造成一種浪費。 因此希望,如果服務器數據沒有發生變化,那么就不對瀏覽器返回數據,仍舊使用瀏覽器緩存的數據。 做法是:服務器返回的數據會被加上last-modified 這個字段,表示最后一次修改時間, 如果瀏覽器發送請求,則會將last-modified 這些數據再發送給服務器,服務器發現last-modified 沒有發生改變 則不再重復給瀏覽器發送數據,可以節約資源。 還有一種情況就是說,如果服務器端數據發生了改變,但是在瀏覽器請求數據之前,數據又改變回來了,所以last-modified 發生了變化, 但是這種情況也不希望服務器給瀏覽器返回數據。因此,服務器返回給瀏覽器的數據中還有一個字段etag表示數據內容是否發生變化, 如果last-modified 發生了變化,再進一步判斷etag是否發生變化,如果沒有,則不返回數據。查看全部
-
lazy loading技術,yii懶加載技術依賴于php的spl_autoload_register(),注冊一個自己的自動加載函數(autoloader),并插入到自動加載函數棧的最前面,確保yii的autoloader會被最先調用,類自動加載的這個機制的引入要從入口文件index.php 開始說起。 <?php defined('YII_DEBUG')or define('YII_DEBUG',false); defined('YII_ENV')or define('YII_ENV','prod'); //這個是第三方的autoloader require(__DIR__.'/../vendor/autoload.php'); //這個是yii的Autoloader,放在最后面,確保 其插入的autoloader會放在最前面 require(__DIR__.'/../vendor/yiisoft/yii2/Yii.php'); require(__DIR__.'/../../common/config/aliases.php'); $config=yii\helpers/ArrayHelper::merge( require(__DIR__.'../../common/config/main.php'), require(__DIR__.'../../common/config/main-local.php'), require(__DIR__.'../config/main.php'), require(__DIR__.'../config/main-local.php') ); $application=new yii\web\Application($config); $application->run(); 這個文件主要看點在于第三方的autoloader與Yii實現的autoloader的順序,不管第三方的代碼是如何使用spl_autoloader_register()來注冊資金的autoloader的。只有yii的代碼在最后面,就可以確保其可以將自己的autoloader插入到整個 autoloader棧的最前面,從而在需要時最先被調用 ?>查看全部
-
<?php namespace app\controllers; use Yii; use yii\web\Controller; class HelloController extends Controller { public function behaviors(){ return [ [ 'class'=>'yii\filters\PageCache', 'duration'=>1000, 'only'=>['index','test'], //這里類名首字母需要用小寫字母 'dependency'=>[ 'class'=>'yii\caching\FileDependency', 'fileName'=>'hw.txt' ] ] ]; } public function actionIndex() { echo 3; } public function actionTest(){ echo 6; } }查看全部
-
<?php //緩存時間 // $duration = 15; // //緩存依賴 // $dependency = [ // 'class' => 'yii\caching\FileDependency', // 'fileName' => 'hw.txt' // ]; //緩存開關 $enabled = false; ?> <?php if($this->beginCache('cache_div',['enabled'=>$enabled])){?> <div id="cache_div"> <div>這里待會會被緩存d</div> </div> <?php $this->endCache(); } ?>查看全部
-
<?php if($this->beginCache('cache_div')){?> <div id="cache_div"> <div>這里待會會被緩存</div> </div> <?php $this->endCache(); } ?> <div id="no_cache_div"> <div>這里不會被緩存</div> </div>查看全部
-
緩存數據有效期設置,可以在add或set的時候進行設置, add(''key','value',有效期); set(''key','value',有效期); 有效期(單位:S)查看全部
-
添加數據緩存; 首先,需要config中的web.php中開啟并設置四種緩存方式之一; 其次,加載緩存組件,并進行增刪改查。參看截圖 注意一點,緩存中相同的key值add方法時不會重復修改,只能通過set方法修改查看全部
-
可以通過使用Yii::$classMap,對延遲加載機制進行優化,是典型的空間換時間的做法,所以不建議往classMap中放入太多不常用的內容,避免內存占用過多. Yii::$classMap['app\models\Test'] = '/Volumes/DataDisk/www/study/basic/models/Test.php'; 另外,Yii::$classMap數組中的可以需要用全名'app\models\Test',而不能簡單的用Test查看全部
舉報
0/150
提交
取消