2012-06-11 2 views
3

두 가지 이벤트 인 아래 코드의 이점은 무엇입니까?YII는 gzip을 사용하여 애플리케이션 출력을 압축합니다.

그게 실제로 뭐하는거야 ??

require_once($yii); 
$app = Yii::createWebApplication($config); 
Yii::app()->onBeginRequest = function($event) 
{ 
    return ob_start("ob_gzhandler"); 
}; 

Yii::app()->onEndRequest = function($event) 
{ 

return ob_end_flush(); 
}; 

$app->run(); 

내 응용 프로그램에서이 코드의 기능을 설명하십시오. 어떻게 도와 줄 수 있니?

답변

4

위의 코드는 콘텐츠를 버퍼링하고 브라우저에서 바로 보내지 않고 gzip으로 압축합니다.

Yii::app()->onBeginRequest = function($event) 
{ 
return ob_start("ob_gzhandler"); 
}; 

은 상기 요청이 시작되면 콘텐트 버퍼링되며 콜백을 사용하여 GZIP 같은 내용을 설정할 것, 브라우저에 따라 수축하거나 없음을 의미한다.

Yii::app()->onEndRequest = function($event) 
{ 
return ob_end_flush(); 
}; 

위의 코드는 요청이 끝날 때 버퍼 내용을 출력한다는 것을 의미합니다.

+0

추가 main.php에서 다음 줄을 설정할 수 있습니다 gzhanlder를 추가하려면? –

+2

콘텐츠가 가능한 경우 gzip으로 압축되므로 다운로드 할 데이터가 적어 페이지 속도가 빨라집니다. – Avanche

+2

다음은 일반적인 사이트 성능 가이드 라인입니다. http://developer.yahoo.com/performance/rules.html gzip 섹션까지 아래로 스크롤 할 수 있습니다. – Avanche

2

콘텐츠를 버퍼링하고 브라우저에 보내기 바로 전에 브라우저가 압축 된 콘텐츠를 허용 할 수 있는지 묻습니다. 가능한 경우 HTML을 압축하여 제공합니다. 그렇지 않으면, 압축되지 않은 상태로 공급됩니다.

압축 된 콘텐츠는 브라우저에서 다운로드해야하는 HTML 크기를 줄여 성능을 향상시킬 수 있습니다. 사용자가 볼 수있는 성능 향상 정도는 HTML 크기에 달려 있습니다. 브라우저가 콘텐츠를 먼저 압축 해제해야하기 때문에 큰 페이지는 더 많은 이점을, 작은 페이지는 실제로 렌더링하는 데 더 오래 걸릴 수 있습니다. Firebug 또는 Chrome 개발자 도구 모음을 사용하여 그만한 가치가 있는지 확인하십시오.

또한 서버 측의 영향을 확인하십시오. 다시 말해, 증가 된 서버로드의 단점은 증가 된 클라이언트 쪽 페이지 렌더링 속도보다 클 수 있습니다. 그러므로, 그것은 많은 캐싱에서 가장 잘 작동합니다.

이것은 일반적으로 성능을 향상시키기 위해 사이트를 최적화 할 때 수행하는 작업입니다.

1

똑바로 주요 설정 파일은

'onBeginRequest'=>create_function('$event', 'return ob_start("ob_gzhandler");'), 
'onEndRequest'=>create_function('$event', 'return ob_end_flush();'), 

이 두 줄은 클라이언트 측에서 얼마나 유익한 GzipHandler