PHP и jQuery ajax вызов без ожидания ответа

Я борюсь с чем-то.

У меня есть страница PHP, которая выполняет вызов ajax на другой странице с помощью jQuery $.ajax . Он отправляет запрос async на страницу обработки, которая затем возвращает ответ.

Это отлично работает сейчас, но мы вносим некоторые изменения в бэкэнд, и обработка (хранимая процедура SQL), которая выполняется, теперь занимает намного больше времени, а также более 5 минут. Ожидание – это хорошо, потому что мы имеем дело с 200-миллиметровыми записями в SQL.

Дело в том, что мне нужно отправить запрос на страницу обработки и не ждать ответа. Страница обработки запускает хранимую процедуру в PHP следующим образом:

  $query = $dbh2->prepare('exec sp_name :countID'); $query->bindParam('countID', $countID); $query->execute(); 

Теперь снова эта хранимая процедура занимает некоторое время, и нам не нужны результаты, которые будут представлены пользователю. Существует хотя и некоторый дополнительный PHP-код, который должен запускаться после хранимой процедуры, но снова ничего не нужно отправлять обратно в браузер.

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

Любое понимание этого было бы замечательно.

Заранее благодарю за любую помощь.

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

Несколько месяцев назад я дал ответ на аналогичный вопрос. К сожалению, OP и никто еще не принимал / не прокомментировал / не поставил / downvoted – nada.

  • Запустите пакетный файл с моего веб-сайта

И вот несколько полезных ссылок:

Запуск фонового скрипта (команда unix)

Как составить PHP $ shortopts и $ longopts

Это способ интерпретации параметров, переданных скрипту PHP при запуске из командной строки или из другого скрипта PHP с помощью shell-exec ()

Вы можете посмотреть настройку параметра timeout для $.ajax() . Установив тайм-аут, возможно, полсекунды или что-то еще, ajax просто перейдет в режим ожидания и перейдет в обработчик ошибок (если есть).