YII使用gzip压缩应用程序输出

YII使用gzip压缩应用程序输出,yii,yii-components,yii-events,Yii,Yii Components,Yii Events,下面这两个事件代码的好处是什么 它到底在做什么 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();

下面这两个事件代码的好处是什么

它到底在做什么

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();

请在我的应用程序中解释此代码的功能。它的作用是什么??这对我有什么帮助呢?

上面的代码缓冲了内容,并根据浏览器对其进行gzip处理,而不是直接发送

Yii::app()->onBeginRequest = function($event)
{
return ob_start("ob_gzhandler");
};
上面的意思是,当请求启动时,它将缓冲内容,并使用回调将内容设置为gzip、deflate或none,具体取决于浏览器

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

上面的代码只是表示,在请求结束时,它将输出缓冲区内容。

它缓冲内容,并在将其发送到浏览器之前,询问浏览器是否可以接受压缩的内容。如果可以,它将在提供之前压缩HTML。否则,它将提供解压缩

压缩内容减少了浏览器需要下载的HTML的大小,这可以提高性能。用户将看到多少性能提升取决于HTML的大小——较大的页面将看到更多的好处,而较小的页面实际上可能需要更长的时间来呈现,因为浏览器必须首先解压缩内容。使用Firebug或Chrome开发者工具栏查看是否值得

另外,检查对服务器端的影响。同样,服务器负载增加的缺点可能会超过客户端页面渲染速度的提高。因此,使用大量缓存时效果最好


这通常是您在优化站点、寻求性能提升时所做的事情。

如果您想将gzhanlder直接添加到主配置文件中,您可以在main.php中设置以下几行

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

这两行代码在客户端添加了GzipHandler

,如果可能的话,它的有益内容是如何被Gzip的,因此下载的数据更少,这意味着更快的页面速度。下面是一些常见的网站性能指南,应该会有所帮助。您可以向下滚动到gzip部分。