0

このフィルターを作成しました

return array(
    array(
        'CHttpCacheFilter + View',
        'lastModified'=>Yii::app()->db->createCommand(
             "SELECT MAX(`date_taken`) FROM image")->queryScalar(),
    ),
);

actionViewPHP Yiiのすべてのデータをキャッシュします

問題は、ページに動的にする必要がある領域があることです。

そのページの部分キャッシュを見てきました。これはパフォーマンス上の利点をもたらしません。主な重みは、SQL クエリにあります。キャッシュキーにデータを追加してみました。ただし、データが 1 MB を超えるため、これはうまく機能しません。誰でもこれを回避する最善の方法を知っています

/**
 * View for a Image
 * @param string $alias_title the image a user would like to view   
 */        
public function actionView($alias_title)
{
    $associated_image_details =  Image::getImageFromAliasTitle($alias_title);
    $image = Utils::getArrayOrNull($associated_image_details, 0);
    $album = Utils::getArrayOrNull($associated_image_details, 1);
    $tag= Utils::getArrayOrNull($associated_image_details, 2);
    $comment= Utils::getArrayOrNull($associated_image_details, 3);
    $media_set= Utils::getArrayOrNull($associated_image_details, 4);
    $media_gallery= Utils::getArrayOrNull($associated_image_details, 5);
    $media_group= Utils::getArrayOrNull($associated_image_details, 6);

    $this->render('view', array(
        'image' => $image, 
        'album'=>$album,
        'comment'=>$comment,
        'tag'=>$tag,
        'media_set'=>$media_set,
        'media_gallery'=>$media_gallery,
        'media_group'=>$media_group
    ));
}
4

0 に答える 0