2 различных php запрашивают в то же время на пользователя

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

В первую очередь, какова причина этого? (теплозаправщик? php? апач?) и как я могу избежать этого?

Спасибо

7
задан JeromeJ 15 May 2013 в 03:04
поделиться

2 ответа

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

10
ответ дан 6 December 2019 в 23:01
поделиться

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

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

1
ответ дан 6 December 2019 в 23:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: