问题标签 [output-buffering]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1954 浏览

php - PHP ob_start() 问题

如果可以的话,我是否允许在我的 php 文件中包含两个或更多文件,结束一个并开始另一个ob_start();的正确方法是什么?ob_start();

0 投票
3 回答
445 浏览

php - 必须在所有 PHP 页面前加上 ob_start()

ob_start()在所有 PHP 页面的开头都可以吗?

如果我不这样做,我会收到“标头已发送”错误。

0 投票
1 回答
612 浏览

php - flush() 在 PHP 中不显示输出?

我有这个代码:

当我查看此页面时,我想做的是实时查看脚本运行了多长时间,如下所示:

  • 脚本已运行 1 秒。
  • 脚本已运行 2 秒。
  • …………
  • 脚本已运行 300 秒。

相反,我得到的是一个空白窗口,上面有一个连续的“加载”标志,持续了 5 分钟,5 分钟后,我突然被大量这些消息轰炸,我应该一次收到 1 条消息。

有人可以解释我做错了什么吗?

0 投票
3 回答
1973 浏览

php - PHP 缓冲区为什么 \r\n

在评论中,我有一些关于以下脚本的概念性问题(我认为都是相关的)。该脚本工作正常。

首先,为什么我需要发送\r\n<tag>\r\n到浏览器?我认为它与标题有关。

其次,为什么中间需要一些HTML?

第三,有很多例子使用256字节而不是4096。但是,如果我使用256,脚本就不起作用。这些例子是否已经过时了,这个数字将来会再次改变吗?

//编辑源链接

这段代码主要是从php.netsleep()函数的注释和这个 SO question 的解决方案中收集的。都没有提到为什么要包含\r\n.

//编辑关于标题

如果我不添加\r\n、HTML 标记和第二组\r\n,脚本将无法在 Chrome 或 Safari 中正确执行(它只是一次转储所有值)。

此外,如果在 a 之前调用session_start()它,则会引发错误:“无法发送会话缓存限制器 - 标头已发送”。

0 投票
4 回答
69278 浏览

php - PHP 缓冲区 ob_flush() 与 flush()

两者之间有什么区别ob_flush()flush()为什么我必须同时调用两者?

ob_flush()参考资料说:

此函数将发送输出缓冲区的内容(如果有)。

flush()参考资料说:

刷新 PHP 的写入缓冲区以及 PHP 正在使用的任何后端(CGI、Web 服务器等)。

然而,它继续说:

[它] 可能无法覆盖您的 Web 服务器的缓冲方案……</p>

所以,在我看来,我可以一直使用ob_flush()。但是,当我这样做时,我会得到奇怪的结果。有人可以简单地解释一下这里发生了什么吗?

0 投票
3 回答
346 浏览

c++ - Boost:如何创建一个线程以便可以控制它的所有标准输出、标准错误?

我用 C++ 创建了一个 win32 控制台应用程序。我使用了一些 API(不是我的,我不能修改它的来源)。它的编写是为了将它的一些信息写入控制台屏幕而不是询问......每次我调用它(每秒 48 次)所以我想把它放到一些线程中并限制它的输出能力,但我需要得到当该线程将尝试输出一些对我很重要的消息时得到通知。我有标准字符串中的消息文本。如何使用 boost 在 C++ 中做这样的事情?

0 投票
9 回答
331566 浏览

php - php中ob_start()有什么用?

ob_start()用于output buffering使标头缓冲而不发送到浏览器?我在这里有意义吗?如果不是那么我们为什么要使用ob_start()

0 投票
8 回答
36392 浏览

php - PHP Flush/ob_flush 不工作

我已经尝试过几次尝试让我的 flush 和 ob_flush 工作。我尝试将 ini 设置为允许缓冲,我尝试使用我在网上找到的几种不同的功能来进行输出缓冲,但它们都不起作用。该脚本希望等到它完全完成,直到它回显输出。这是我到目前为止的脚本

我希望它回显它正在做的事情,然后运行该函数,然后回显其他内容,然后执行另一个功能。我希望在浏览器上实时刷新和回显所有缓冲区。

0 投票
2 回答
2020 浏览

php - 输出缓冲区和 die() / exit() 函数?

我希望每个人的假期都过得很好。

另一个与 PHP 相关的问题在这里。我在我的脚本中使用了输出缓冲区,因为我最近了解到这是一个无效的原因(所以我可以稍后在脚本中传递标题)。我现在意识到我应该将所有输出存储在一个变量或某种其他类型的存储中,直到我准备好在脚本末尾输出而不是使用输出缓冲区。不幸的是,我已经将这些函数和 html 的自发输出编码到我的页面中。我希望能够在脚本的版本 2 中解决这个问题,因为我有严格的截止日期来满足这个版本。

对于手头的问题。我正计划这样做,但显然 die() 和 exit() 函数在输出缓冲区中效果不佳?在我所有的错误消息之后,我都有 exit() ,而不是在那个时候结束执行,似乎脚本由于输出缓冲区而继续运行。我已经通过删除输出缓冲区测试了这个假设,并且 exit() 函数按预期工作。

有没有办法改变这种行为,或者我应该回到绘图板并开始替换我的旧页面?另外,有人可以向我解释为什么我们应该保持输出到最后吗?我总是对学习很感兴趣。

提前谢谢大家!享受 2010 年的最后几天吧!

0 投票
3 回答
238 浏览

php - 为什么要保存输出直到最后?

关于编程实践的非常快速的问题:

我一直使用 echo() 将 HTML 代码在生成后立即输出给用户,并同时使用 ob_start() 以便能够在代码中稍后输出标头。最近,我意识到这是一种不好的编程习惯,我应该将 HTML 输出保存到最后。

是否有一个原因?它是什么,为什么输出缓冲不是一个好的选择?

谢谢!