Я не знаю правильной терминологии для поиска решения. Пожалуйста, предложите стратегию, чтобы разбить вывод php на маленькие куски и пошагово передать их в ajax's responseText.
Проект представляет собой веб-страницу ajax, которая принимает текстовую строку (фамилию) и передает ее в программу php. Код php берет фамилию и случайным образом выбирает 3 человек с разными именами и помещает их в массив. Как только это будет сделано, код php свяжется с внешними серверами, чтобы получить информацию, связанную с каждым именем, и вывести информацию в div веб-страницы. Процесс получения данных с внешних серверов очень медленный.
Этот код в основном выполнен, но весь процесс занимает очень много времени, чтобы сгенерировать вывод на экран. Есть ли способ (стратегия) немедленно выводить каждый шаг php-кода вместо того, чтобы ждать завершения кода?
Мой псевдо-PHP-код выглядит так:
<?
get 3 names; //output this immediately
foreach name { get phone number }
?>
Кроме того, я мог бы получить имя и номер телефона и вывести их непосредственно перед переходом к следующему имени.
Существуют ли php или ajax коды / функции / стратегии, которые бы этого достигли? Пожалуйста, предложите решения или ключевые слова для поиска.
Добавление / редактирование:
Спасибо за предложения. Можно ли выполнить другой вызов ajax после родительского вызова ajax? Сначала я пошел по этому пути, но мое тестирование вложенного вызова js / ajax не сработало. Это может быть связано с синтаксическими ошибками, просмотрите код.
Тестовый код в файле testajax.php (или testajax.html) для вызова ajax XHR.responseText имеет значение
<div id="name" >JAM <div id="numa" >
<br />
<br />text holder >>
<script type="text/javascript">
var pid=document.getElementById("numa").parentNode.id;
alert (pid);
document.getElementById('numa').innerHTML += 'append text>> ';
document.write(' docwrite');
</script>
</div>
</div>
<br />
<br />ending text
Если я просматриваю файл testajax.php (или testajax.html) напрямую, я вижу
JAM
text holder >> (an alert window) append text>> docwrite
ending text
но если я сделаю ajax-вызов файла testajax.php, все, что я увижу, это
JAM
text holder >>
ending text
Код внутри тегов <script> </script>
не запускается после вызова ajax
Может кто-нибудь объяснить это и предложить исправление?
ТИА