Итак, у меня довольно дорогой и сложный PHP-процесс, который делает его выполнение длительным, давайте назовем его функцией «дорогой_процесс ()».
У меня есть интерфейс, который при нажатии кнопки вызывает ajaxзапрос к PHP-скрипту, который, в свою очередь, инициирует "дорогой_процесс ()".Вот код JavaScript:
$('#run_expensive_process_button').click( function(){
var url = "initiate_expensive_process.php";
$.ajax({
url: url
});
});
И код initiate_exорого_process.php:
<?php
session_start();
run_expensive_process();
?>
Просто и тривиально.Теперь проблема заключается в том, что во время работы cost_process () браузер теряет способность перемещаться по домену.Если я обновляю окно браузера, оно зависает бесконечно, пока процесс продолжается.Если я перенаправлю на другой URL в том же домене, то же самое.Это происходит во всех браузерах.Однако, если я перезапущу браузер (закрою и открою новое окно, а не вкладку), навигация будет работать нормально, даже если все еще запущено cost_process ().
Я проверил сетевой трафик и запрос HTTPto initiate_exорого_process.php не получает ответ во время выполнения дорогого_процесса (), но я предполагаю, что это не должно блокировать браузер, учитывая асинхронный характер запроса ..
Еще одна вещь, котораяЯ считаю актуальным.Эта ситуация происходит на сервере реплики.На моей локальной машине, где я запускаю WAMP и тот же исходный код, этого не происходит, т. Е. Во время работы дорогой_процесс () я все еще могу перемещаться по домену хостинга без необходимости перезапуска браузера.Похоже, это свидетельствует о какой-то проблеме конфигурации сервера, но я не уверен, что могу исключить другие возможные причины.
Кто-нибудь знает, что может быть причиной этого или что можно сделать, чтобы выяснить,источник проблемы?
Спасибо