这可能是也可能不是编程问题。
这是关于我问earlier的问题。您不需要知道此前的问题,但它可能是相关的。我不确定这是一个内存或设置,或者是或者或者db(极不可能)的问题。
$table_name
实际上是view
,如果它有任何区别的话。数据库是MySQL
。我有以下代码。为了保持一致性,我在最后添加了die()
。
$query = mysql_query("SELECT * FROM $table_name") or die(mysql_error());
$query1 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());
$query2 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());
$query3 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());
$query4 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());
echo "End";
die();
这个简单的php页面不能运行ie但在chrome和firefox中运行良好。我收到"Internet Explorer cannot display the webpage"
错误。开发人员的工具控制台中没有错误。 view
有大约50,000条记录。
但是这段代码运行正常。另一个问题不应该产生那么大的差异。
$query = mysql_query("SELECT * FROM $table_name") or die(mysql_error());
$query1 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());
$query2 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());
$query3 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());
echo "End";
die();
$query4 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());
我想也许是处理的大量记录(250k很小)。所以我尝试了这段代码。该查询每个约有15条记录。
$query = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());
$query1 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());
$query2 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());
$query3 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());
$query4 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'")or die(mysql_error());
echo "End";
die();
这个没完成。我得到了同样的错误"Internet Explorer cannot display the webpage"
。然而,这很好。
$query = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());
$query1 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());
$query2 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());
$query3 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());
echo "End";
die();
$query4 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());
对于Internet Explorer如何处理5个简单查询,我感到非常困惑。有时它甚至不会转到$query3
,也不能超过$query2
。
我已在本地测试过 - Win7,IE8。我有足够的内存,硬盘空间等。本地我运行PHP 5.3.5。
我还在运行IE8的两台不同计算机上的基于unix的服务器上测试了这一点。再次拥有足够的内存,硬盘空间等。在服务器上,PHP版本是5.25。
我在一张较小的桌子上测试了它,它运行正常。该表有200条我随机生成的记录。但是在较大的table(read view)
上,它不起作用。
我对IE的这一点感到非常沮丧。如果IE有任何限制或以任何方式解决问题,任何见解/帮助解释为什么它不起作用将不胜感激。
答案 0 :(得分:0)
这不是IE上的问题。 IE无法显示网页,因为服务器没有返回结果(正确)。禁用IE中的“友好消息”,您可以(可能)获得更好的消息,甚至可以提供有关问题的一些提示。 您还可以将所有内容都包含在try-catch中并打印结果,这也可能有所帮助。 http://php.net/manual/en/language.exceptions.php
答案 1 :(得分:0)
为了清理,PHP在服务器上运行。 IE和Firefox是浏览器,不执行任何PHP(正在运行查询)。
您运行的PHP脚本可能在IE上超时。简单地说,渲染需要很长时间,IE认为它已经坏了(大多数用户也会这样做)。
考虑使用AJAX调用。
答案 2 :(得分:0)
在执行所有5个查询时,您可能会达到最长执行时间,
并且您的脚本没有返回正确的HTTP状态
(可能是错误500,您需要根据您的apache日志进行验证)
然而,最致命的问题是因为你重复同一组SQL 5次 所有查询都返回相同的结果集,您可以简单地将所有5个查询合并为一个。
组合查询后,对从视图执行查询所需的时间进行基准测试,
在不知道what exactly you have written for the view的情况下,我不愿意说是安全的。
答案 3 :(得分:0)
实际问题是您的页面加载时间过长(由于查询量较大),如果等待时间超过1分钟,IE将会超时。
To fix you will need to edit the registry但这不应该是必要的,因为没有页面需要更长的时间才能加载1分钟!