【发布时间】:2012-05-16 09:04:49
【问题描述】:
使用ob_start() 和ob_start('ob_gzhandler') 有什么区别?
它如何影响页面速度?
【问题讨论】:
标签: php buffer content-encoding
使用ob_start() 和ob_start('ob_gzhandler') 有什么区别?
它如何影响页面速度?
【问题讨论】:
标签: php buffer content-encoding
这不会像您想象的那样影响页面速度。
ob_gzhandler 是一个回调函数,它从输出缓冲区获取内容并在输出之前压缩数据。
这会减少发送到浏览器的内容的大小,这可能会加快内容传输到客户端的速度。但它不会加速您的应用程序/网站。
【讨论】:
我需要对一些没有为某些客户端自动压缩的管理页面(充满复杂的 HTML 表)强制 gzip,所以我添加了这个方法。我不确定我会为每个页面强制它,但至少管理页面没问题。
function force_gzip()
{
// Ensures only forced if the Accept-Encoding header contains "gzip"
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
{
header('Content-Encoding: gzip');
ob_start('ob_gzhandler');
}
}
950Kb 的 HTML 被压缩到大约 80KB,从而使页面加载速度提高了 5-10 倍。
【讨论】: