PHP в Javascript: получение ответов через регулярные промежутки времениPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHP в Javascript: получение ответов через регулярные промежутки времени

Сообщение Anonymous »

Может ли PHP регулярно отправлять ответы на Javascript?
У меня есть сайт, созданный на PHP, который имеет как живую копию, так и тестовую/песочницу. Закончив работу над сайтом-песочницей и удовлетворившись тем, что у меня есть, я нажимаю кнопку с атрибутом onclick, чтобы скопировать код на работающий сайт с помощью функции Javascript. Мой код работает нормально, когда Javascript связывается с серверной функцией PHP с помощью блока кода fetch/then/catch:

Код: Выделить всё

await fetch(_url_of_site_and_name_of_PHP_file_receiving_the_javascript_request, {
method: 'POST',
body: 'mirrorsites',
headers: { 'Content-type': 'application/json; charset=UTF-8', },
}).then(response => response.text())
.then(data => {
console.log(data + '% of your site is done.');
}).catch(error => {
console.log('Whoops. Something went wrong.');
});
но копирование занимает несколько минут, и пользователь задается вопросом: "...Эй, сайт, ты работаешь или что-то заморожено?"Поэтому я хотел бы адаптировать код так, чтобы PHP мог возвращать периодические обновления каждые 10, 15, 20, сколько угодно секунд, что-то вроде: «Эй, мы готовы на 10%... Готово на 20%. ..» и т. д., пока не достигнем 100%. Мой PHP-код представляет собой базовую функцию, которая обрабатывает, завершает работу и затем возвращает значение успеха/ошибки с помощью обычной строки return $returnvalue;. Суть в том, что он анализирует все файлы на сайте-песочнице, затем просматривает каждый файл и использует команду PHP copy для копирования их на работающий сайт. Он не выходит из функции, пока цикл не завершится. (Он не удаляет файлы на действующем сайте, если они отсутствуют на сайте-песочнице, поскольку действующий сайт содержит дополнительные файлы, такие как robots.txt, карта сайта, значок значка и т. д.)
Короче говоря, мой код обрабатывает один вызов Javascript и один ответ PHP на этот вызов Javascript, но мне бы хотелось, чтобы он обрабатывал один вызов Javascript и регулярные обновления PHP.
Я еще не пробовал ничего, кроме исследования Google, потому что... ну... я даже не знаю, с чего начать. Как я могу заставить PHP отправлять периодические ответы и указать Javascript ожидать этих периодических ответов? Очевидно, что мое ключевое слово await для моей выборки будет ждать, пока все это не завершится. Но я боюсь, что если я удалю его, код Javascript выполнит вызов, продолжит работу и скажет: «Хорошо, вы на 100% готовы», в то время как на стороне PHP функция все еще работает. Кроме того, я использую тот же код Javascript fetch/then/catch для связи между клиентом и сервером для других целей, кроме копии сайта, которую мне нужно подождать.
Я сталкивался с вызовом php скрипт через регулярные промежутки времени с помощью javascript, но моя ситуация может отличаться по нескольким причинам: (1) мой Javascript вызывает PHP один раз и ожидает, что PHP ответит несколько раз (вместо того, чтобы Javascript вызывал PHP несколько раз и ожидал ответа один раз за вызов), (2) PHP дает Javascript ответ с возвратом $returnvalue; вместо оператора echo или print, как в другом сообщении. В сочетании с когнитивной дислексией, связанной с решением проблем/рассуждением, различия и сходства между моей проблемой и той, что описана в другом посте, заставляют меня кружиться голова.
Может ли кто-нибудь указать мне на суть проблемы? правильное направление, как я могу это сделать, или даже сказать мне, правильно ли я это делаю или мне следует изменить свой код, чтобы он соответствовал другому сообщению? Я бы предпочел не менять код, поскольку, как я уже сказал, связь Javascript/PHP используется для связи клиент/сервер, а не для копирования сайта. Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/786 ... -intervals
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»