2012-08-08 65 views
3

例如,让ob不打开。每次php引擎都会回应它会将这件事返回给浏览器吗?所以我对ob的看法是,收集所有数据并且一次不发送给浏览器会导致加载时间积极。但是,如果我错了,你可以在PHP中使用它的意义是什么(真相背后的意思)?PHP中的'output buffering'用于增加页面加载时间

+0

请考虑这一点,太http://stackoverflow.com/questions/2982121/php-speed-many-echos-vs-building-a-string – user1477388 2012-08-08 13:02:21

+0

这很大程度上取决于*你输出什么。如果您一次打印1个字节并强制将其刷新到客户端,那么......不要,除非您喜欢*浪费TCP ACK上的带宽(尽管数量很少)。但是如果你正在构建一个50MB的响应,那么在你完成构建之前就开始发送它,如果没有其他的话,为了内存使用的目的。不过请注意,Web服务器可能会提供自己的缓冲层,所以仅仅因为您使用PHP输出内容并不意味着它会立即发送到客户端。 – DaveRandom 2012-08-08 13:33:35

回答

1

如果你的PHP脚本执行得很快,它将没有什么不同。如果你的PHP脚本执行速度很慢,但输出很短(小的HTML文件),它没有什么区别。

它会产生变化的唯一方法是脚本执行很长时间(例如从查询中返回大量数据)并且输出HTML太大以致于对用户造成显着差异由于输出大于带宽,它将以更小的片段发送。

基本上,它是一个快速执行的小文件,由于用户只能从服务器下载少量数据,因此它将不可见。如果代码需要很长时间才能执行但返回少量的HTML,那么用户仍然必须等待代码执行完成才能从服务器获得输出。如果代码需要很长时间才能执行,并且输出太大以至于服务器可以将它们发送给用户的速度比他们能够下载的速度快(服务器带宽超过用户带宽),那么会出现可测量的差异该网站的用户 - 但只有这样。