仅IE服务器端代码崩溃


server side code crashing only IE?

奇怪的问题:PHP运行一个嵌套的foreach,它生成一个字符串(基本上是一个显示人们假期的日历)。

此字符串进入$data['grid']并发送到视图。var_dump显示:string(188263)

当使用FF和Chrome查看时,字符串在网页中打印得很好,但由于某种原因,当使用IE6、8和9(未在7中测试)查看时,每次都会导致浏览器崩溃;它挂起了,屏幕上什么也没有出现。

IE可以在字符串在控制器中打印出来时显示它,所以在它被传递到视图之前也是如此。

这在IE中运行良好:

print $str; die;
$data['grid'] = $str;
$this->load->view('conge', $data);

这会使IE:崩溃

//print $str; die;
$data['grid'] = $str;
$this->load->view('conge', $data);

页面的总"重量"为192KB,并且没有运行JS。这感觉像是PHP/内存问题,但"bug"只存在于IE中这一事实毫无意义。

有什么想法可以调试吗?

编辑:当我将FF的渲染输出保存到一个静态HTML文件中并加载到IE中时,它会崩溃。字符串打印出来时没有换行符(loooong),但当我添加时,问题仍然存在。无论如何,再近一步。

编辑2:这似乎是由于HTML标记中的错误导致IE崩溃(?!)。案件结案!

服务器端代码不能使浏览器崩溃。

生成的HTML文件可能会导致浏览器崩溃,因此需要仔细检查输出的HTML。

将w3c验证服务指向URL,然后查看它返回的结果。

如果没有结果,开始注释掉头部的大部分,然后注释掉正文等,直到成功渲染,然后可以研究一小段代码。

顺便说一句,我假设192k包括图像、CSS等,否则就是一个怪物HTML文件!