2 разных запроса php одновременно для каждого пользователя - PullRequest
7 голосов
/ 30 мая 2010

У меня есть веб-сайт, который имеет 2 страницы (home_page.php и action_page.php). 2 минуты для полной загрузки (серверная часть занимает 2 минуты). Но если пользователь нажимает на ссылку домашней страницы во время загрузки страницы действия, браузер не переходит на домашнюю страницу, пока страница действия не будет полностью загружена. То же самое, если домашняя страница открывается в новой вкладке.

Прежде всего, в чем причина этого? (bowser? php? apache?) и как мне этого избежать?

Спасибо

Ответы [ 3 ]

10 голосов
/ 30 мая 2010

Скорее всего, это потому, что сеанс заблокирован. PHP разрешает только один запрос на сеанс, чтобы предотвратить возникновение проблем (перезапись данных и т. Д.). Смотрите: session_write_close () ...

1 голос
/ 30 мая 2010

Если на загрузку страницы уходит 2 минуты, значит, вы достигли пределов таймаута сети обычного браузера. Это действительно долгое время для загрузки страницы. Возможно, вы захотите создать отдельный процесс для обработки длинной обработки. Вы можете поместить результат в базу данных, файл и т. Д. И использовать опрос, чтобы убедиться, что это сделано.

При порождении процесса (exec ()) убедитесь, что вы используете nohup, фоновый режим его (&) и прямой вывод ошибок в / dev / null, иначе он не отключится от веб-процесса, и веб-процесс будет дождитесь его окончания.

0 голосов
/ 21 октября 2015

Кроме того, посмотрите на ваши настройки отладки, если вы разрабатываете. У меня есть это в моем .htaccess:

php_flag xdebug.remote_enable on
php_flag xdebug.remote_connect_back on
php_flag xdebug.remote_autostart on

И это создает такое же поведение.

...