什么是下面的代码是两个事件的好处。
什么它实际上做?
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它的功能? 以及它如何能帮助我吗?
上面的代码缓冲器的内容和根据浏览器的gzip它,而不是发送它马上。
Yii::app()->onBeginRequest = function($event)
{
return ob_start("ob_gzhandler");
};
以上意味着,请求启动时,它会缓冲的内容,以及使用该回调将设置的内容以gzip,根据浏览器放气或无,。
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