lightalex
@lightalex

Как сделать abort для PHP страницы по отношению к AJAX-запросу?

Доброго времени суток
Есть PHP страница к которой осуществляется AJAX-запрос
Можно ли в середине PHP-скрипта с имитировать конец страницы (то есть отправляется ответ на AJAX-запрос, для него как будто PHP отработал), но на самом деле PHP будет исполняться дальше?
  • Вопрос задан
  • 158 просмотров
Решения вопроса 2
T_y_l_e_r
@T_y_l_e_r
php.net/manual/ru/function.ob-start.php и все что связано с буфером вывода
Ответ написан
Комментировать
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
На самом деле, скрипт будет работать до тех пор, пока не выполнится целиком или пока не достигнет max_execution_time (параметр в php.ini), обычно он равен 30 секундам, но при возможности доступа к php.ini вы можете выставить это время вплоть до бесконечности. Если PHP запущен из консоли - этот параметр не действует, но это не Ваш случай. А то, что вы подразумеваете под "концом страницы" - не более чем сброс буфера, но не стоит забывать, что на веб-сервере может быть свой буфер, который возможно тоже придётся настроить, что бы сервер не "висел" в ожидании.

То есть алгоритм такой, вы запускаете скрипт, как следствие AJAX-запроса, отправляете в вывод данные, которые Вам нужны (через print/echo), когда последняя порция данных отправлена - делаете flush(), и... скрипт продолжает работать дальше.

Так же, буфер автоматически сбрасывается (отправляется в браузер и/или промежуточный сервер) при завершении работы скрипта, именно по этому "конец работы скрипта" у Вас ассоциируется с "концом страницы".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы