0

我想分享一个我遇到的问题,我找到的修复,然后问一个关于修复背后原因的问题。

问题

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

修复

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

我的代码

我不打算在这里详细介绍。我对 output_buffering 如何导致问题的理论更感兴趣。此外,我认为我的代码将比帮助更令人眼花缭乱。

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

我的问题

哪些方式output_buffering= Off 会对代码产生不利影响?为什么?

4

3 回答 3

0

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

参考这个,它可以帮助你理解它是如何工作的:https ://stackoverflow.com/a/2832179/817419

于 2012-09-23T06:58:02.100 回答
0

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

于 2012-09-23T06:56:41.683 回答
0

事实证明,网页调用的文件之一编码不正确。一旦我对其进行编码,因为UTF8 without BOM我的问题在很大程度上得到了解决。我的脚本可以在没有打开 output_buffering 的情况下工作。

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

于 2012-10-24T04:59:20.383 回答