YII压缩使用gzip您的应用程序输出(YII compress your application

2019-07-29 20:05发布

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

什么它实际上做?

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

请解释一下这个代码在我application.what它的功能? 以及它如何能帮助我吗?

Answer 1:

上面的代码缓冲器的内容和根据浏览器的gzip它,而不是发送它马上。

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

以上意味着,请求启动时,它会缓冲的内容,以及使用该回调将设置的内容以gzip,根据浏览器放气或无,。

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

上面的代码简单地意味着在请求结束,它将输出缓冲区的内容。



Answer 2:

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

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

此外,还要检查服务器端的影响。 再次,增加服务器负载的缺点可以超过增加的客户端页面渲染速度。 因此,它的效果最好,有很多的缓存。

这通常是当你在优化网站,寻找性能提升你做一些事情。



Answer 3:

如果你想添加gzhanlder直接前往主配置文件,您可以设置继main.php线

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

这两条线添加GzipHandler



文章来源: YII compress your application output using gzip