【问题标题】:'output buffering' in PHP for increasing page load timePHP 中的“输出缓冲”以增加页面加载时间
【发布时间】:2012-08-08 12:57:31
【问题描述】:

例如让 take ob 没有打开。每次 php 引擎面临回声时,它都会将那个东西返回给浏览器,对吗?所以我在考虑 ob 是收集所有数据而不是一次发送到浏览器会导致加载时间积极。但是,如果我错了,您能否解释一下 PHP 中真正的(“幕后站立”)含义以及您将在哪里使用它?

【问题讨论】:

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

标签: php outputstream output-buffering


【解决方案1】:

如果您的 PHP 脚本执行速度很快,它不会产生明显的差异。如果您的 PHP 脚本执行缓慢,但输出很短(小的 HTML 文件),则没有什么区别。

如果脚本执行很长时间(例如从查询中返回大量数据)并且输出的 HTML 太大以至于它对用户产生明显的影响,那么它会产生影响的唯一方法是以较小的 sn-ps 发送,因为输出大于其带宽。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 2015-10-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多