奇怪的问题: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 /内存问题,但“IE”只存在于IE中的事实没有多大意义。
任何想法如何调试?
编辑:当我将FF的渲染输出保存到静态HTML文件中并在IE中加载时,它会崩溃。打印出来的字符串没有换行符(loooong)但是当我添加\ n时问题仍然存在。无论如何,更近了一步。
EDIT2:这似乎是由于HTML标记中的错误导致IE崩溃(?!)。结案!
答案 0 :(得分:0)
服务器端代码不会使浏览器崩溃。
生成的HTML文件可能会导致浏览器崩溃,因此您需要仔细检查输出的HTML。
将w3c验证服务指向URL并查看其返回的内容。
如果没有结果,则开始注释掉标题的大部分,然后是主体等,直到你获得成功的渲染,然后你可以调查一小部分代码。
顺便说一下,我假设192k包含图像,CSS等其他怪物HTML文件!