网页第一次加载时始终无法正常工作。为什么output_buffering会导致问题?

时间:2012-09-23 06:53:10

标签: php session joomla output-buffering

我想分享我遇到的问题,我找到的修复程序,然后询问有关修复背后原因的问题。

问题

升级到wampserver 2.2后,我的一个网页在第一次加载到浏览器中时始终无法正常工作。这发生在Internet Explorer,chrome,firefox和safari上。当重新加载所有浏览器中的页面时。

修复

我决定实施一个更好的调试解决方案,同时这样做无意中解决了我的问题。当我在php.ini中设置output_buffering =On时,页面正常工作。

我的代码

我不打算详细说明。我对output_buffering如何导致问题的理论更感兴趣。此外,我认为我的代码将更多的是一个眼睛,而不是一个帮助。

  • 我使用ajax和joomla会话(外部脚本)来检索 页面的信息。
  • 我相信当output_buffering关闭时,joomla会话 无法检索值。我还不能证实这一点 虽然。

我的问题

output_buffering= Off会以什么方式对代码产生负面影响?为什么呢?

3 个答案:

答案 0 :(得分:0)

输出缓冲只允许您暂停显示否则会立即打印到浏览器的数据。它们主要用于模板引擎,以便存储未渲染的模板,以便可以使用值填充它们。我猜Joomla依靠输出缓冲来填充其模板的正确值,这可以解释为什么你看到无效的输出。

答案 1 :(得分:0)

“我使用了ajax和joomla会话(外部脚本)来检索页面的信息。” 那是你的问题。您正在检索在特定时间延迟内变化的内容。

请参阅此内容,它可能有助于您了解其工作原理:https://stackoverflow.com/a/2832179/817419

答案 2 :(得分:0)

事实证明,网页调用的其中一个文件编码错误。一旦我将其编码为UTF8 without BOM,我的问题基本上已得到解决。我的脚本可以在没有打开output_buffering的情况下工作。

问题的另一部分是使用Firebug的一些脚本抱怨已经发送了标头。这使代码停止了。