Задать вопрос

Как реализовать постепенный вывод данных из php через Ajax?

Собственно сабж. Хочу после сабмита формы выводить результаты работы обработчика по мере его работы.

Вот такой сабмит:
<script type="text/javascript">
$("#f1").on("submit", function(){
$(".loading").show();
$.ajax({
	url: '/test.php',
	method: 'get',
	dataType: 'html',
	data: $("#f1").serialize(),
	success: function(data){
		$(".loading").hide();
		$('#mresult').html(data);
	}
});
return false;
});
</script>

Вот такой обработчик:
<?php
$spacer_size = 8;
echo "hello1<br>";
echo str_pad('', (1024 * $spacer_size), "\n");
	if(ob_get_level()) ob_end_clean();
sleep(2);
echo "hello2<br>";
echo str_pad('', (1024 * $spacer_size), "\n");
	if(ob_get_level()) ob_end_clean();
sleep(2);
echo "hello3<br>";
echo str_pad('', (1024 * $spacer_size), "\n");
	if(ob_get_level()) ob_end_clean();
sleep(2);
echo "hello4";
?>

Тобиш в этом случае хочу каждые 2 секунды видеть новый "Хэллоу".
  • Вопрос задан
  • 135 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
IMHO AJAX так не сделает.
Он получает всю страницу, т.е. дожидается разрыва коннекта, после чего возвращает результат.
Тут вам Websocket нужен...
Ответ написан
Комментировать
zkrvndm
@zkrvndm
Архитектор решений
Используйте ReadableStream, чтобы читать ответ по мере поступления:
https://learn.javascript.ru/fetch-progress
https://translated.turbopages.org/proxy_u/en-ru.ru...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽