Internet Explorer не может обрабатывать несколько запросов - PullRequest
1 голос
/ 13 декабря 2011

Это может быть, а может и не быть вопросом программирования.

Это касается вопроса, который я задал ранее . Вам не нужно знать о предыдущем вопросе для этого, но это может быть актуально. Я не уверен, что это проблема с памятью или настройками, т. Е. Или, может быть, с большой вероятностью.

$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 не запускается, т.е. работает нормально в 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());

Я подумал, что, может быть, это большое количество записей для обработки (250 КБ мало). Поэтому я попробовал этот кусок кода. В запросе содержится около 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.

Я также проверил это на Unix-сервере на двух разных компьютерах, на обоих работает IE8. Опять же достаточно памяти, места на жестком диске и т. Д. И т. Д. На сервере версия PHP 5.25.

Я проверил это на меньшем столе, и он отлично работает. В таблице 200 записей, которые я сгенерировал случайным образом. Но на большем table(read view) это не работает.

Я очень разочарован этим моментом в IE. Буду очень признателен за любую информацию / помощь в объяснении, почему она не работает, если у IE есть какие-либо ограничения или какой-либо способ исправить это.

Ответы [ 4 ]

0 голосов
/ 13 декабря 2011

Фактическая проблема заключается в том, что ваша страница загружается слишком долго (из-за большого запроса), и IE будет превышать время ожидания, если его ожидание дольше 1 минуты.

Чтобы исправить это, вам нужно отредактировать реестр , но в этом нет необходимости, поскольку загрузка ни одной страницы не должна занимать более 1 минуты!

0 голосов
/ 13 декабря 2011

Просто чтобы прояснить ситуацию, PHP работает на сервере.IE и Firefox являются браузерами и не выполняют PHP (то есть то, что выполняет запросы).

Ваш PHP-скрипт, вероятно, работает в IE.Проще говоря, рендеринг занимает так много времени, IE считает, что он неисправен (как и большинство пользователей).

Рассмотрите возможность использования вызовов AJAX.

0 голосов
/ 13 декабря 2011

Вероятно, вы достигли максимального времени выполнения при выполнении всех 5 запросов,
и ваш сценарий не вернул правильный HTTP-статус
(скорее всего, ошибка 500, вам нужно проверить ее в журнале apache)

Однако самая опасная проблема заключается в том, что вы повторяете один и тот же набор SQL 5 раз.
Все запросы возвращают один и тот же набор результатов, вы можете просто объединить все 5 запросов в один.

После того как вы скомбинируете запросы, сделайте тест на время выполнения запроса из представления,
, не зная , что именно вы написали для представления , я не хочу сказать, что это безопасно.

0 голосов
/ 13 декабря 2011

Это не проблема в IE.IE не может отобразить веб-страницу, потому что сервер не вернул результаты (правильно).Отключите «дружественные сообщения» в своем IE, и вы можете (возможно) получить лучшее сообщение, возможно, даже некоторые подсказки о том, в чем проблема.Вы также можете заключить все в пробную версию и распечатать результаты, что также может помочь.http://php.net/manual/en/language.exceptions.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...