У меня есть PHP-скрипт, который запускается через ajax. Этот скрипт PHP использует exec() для запуска отдельного PHP-скрипта через оболочку.Ajax/PHP - должен ли я использовать один длинный сценарий или опрос?
Сценарий, который вызывается через exec(), может занять около 30 секунд. Мне нужно обновить интерфейс после его завершения.
Какой из этих вариантов является предпочтительным?
a) Оставьте HTTP-соединение открытым в течение 30 секунд и дождитесь его завершения.
b) Попросите exec() запустить PHP-скрипт в фоновом режиме, а затем использовать ajax-опрос для проверки завершения (каждые 5 секунд или около того).
c) Что-то еще, о чем я не думал.
Спасибо, Брайан
Можно ли обойти это, используя функцию set_time_limit() PHP и параметр KeepAliveTimeout от Apache? – Brian
Вы можете, но это не хорошие варианты проблемы, которую вы опубликовали. Решение, которое я вам дал, - ваш лучший вариант. Был там, сделал это. –