>  기사  >  백엔드 개발  >  Yii 프레임워크 공식 가이드 시리즈 31 - 캐싱: 페이지 캐싱

Yii 프레임워크 공식 가이드 시리즈 31 - 캐싱: 페이지 캐싱

黄舟
黄舟원래의
2017-02-15 09:19:441036검색



페이지 캐싱이란 페이지 전체의 내용을 캐싱하는 것을 말합니다. 페이지 캐싱은 여러 위치에서 발생할 수 있습니다. 예를 들어, 적절한 페이지 헤더를 선택하면 클라이언트 브라우저가 제한된 시간 동안 웹페이지를 캐시할 수 있습니다. 웹 애플리케이션 자체도 웹 페이지 콘텐츠를 캐시에 저장할 수 있습니다. 이 섹션에서는 후자의 접근 방식에 중점을 둡니다.

페이지 캐싱은 프래그먼트 캐싱의 특별한 경우라고 생각할 수 있습니다. 웹 콘텐츠는 레이아웃을 적용하여 생성되는 경우가 많기 때문에 레이아웃에서 단순히 BeginCache(), endCache()만 호출하면 제대로 동작하지 않습니다. 이는 페이지 콘텐츠가 생성된 후 CController::render() 메서드에 레이아웃이 로드되기 때문입니다.

페이지 전체를 캐시하려면 웹 콘텐츠를 생성하는 작업 실행을 건너뛰어야 합니다. 이 작업을 수행하기 위해 COutputCache를 작업 필터로 사용할 수 있습니다. 다음 코드는 캐시 필터를 구성하는 방법을 보여줍니다.


public function filters()
{
    return array(
        array(
            'COutputCache',
            'duration'=>100,
            'varyByParam'=>array('id'),
        ),
    );
}

위 필터 구성으로 인해 필터가 적용됩니다. 의 모든 작업을 컨트롤러에 전달합니다. 플러그인 연산자를 사용하여 하나 또는 몇 가지 작업으로 제한할 수 있습니다. 자세한 내용은 필터에서 확인할 수 있습니다.

팁: COutputCache는 CFilterWidget에서 상속되기 때문에 필터로 사용할 수 있습니다. 이는 도구(위젯)이자 필터임을 의미합니다. 실제로 위젯은 필터와 매우 유사하게 작동합니다. 도구 위젯(필터)은 작업의 콘텐츠가 실행되기 전에 실행되고 실행 후에 종료됩니다.


위는 Yii Framework 공식 가이드 시리즈 31 - 캐시: 페이지입니다. 캐시 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.