Есть ли способ показать активность функции на веб-странице - PullRequest
0 голосов
/ 02 апреля 2019

Я работаю над веб-приложением, в котором функция выполняет какое-то задание в списке.Теперь, после перебора списка и выполнения некоторых операций с каждым элементом в списке, отображается новая страница.Но операция, выполняемая для каждого элемента, занимает некоторое время.Итак, я хочу отобразить вывод на той же веб-странице, откуда была вызвана эта функция, в то время как функция выполняется, когда операция с какими элементами завершена.А после окончания загружается только новая страница.Пожалуйста, дайте мне некоторое представление, как я могу это сделать.

1 Ответ

0 голосов
/ 02 апреля 2019

Типичный способ сделать это - использовать эти 2 API

  1. API POST "Job Acceptor", который принимает запрос, запускает обработку и возвращает код состояния Http 202(Accepted). Ответ содержит URL-адрес, по которому вы можете нажать, чтобы получить статус приложения
  2. API "Status Poller", с помощью которого вы можете получить GET, чтобы получить статус операции в списке. Пользовательский интерфейс может затем показать прогресс на основе возвращенного статуса.

Обратите внимание, что статус может быть любым: от абстрактного "Выполняется" до конкретного "Завершено на 92%". Внутри 2-го API есть способ получить сумму прогресса по операции в списке

Ссылки https://restfulapi.net/http-status-202-accepted/

Цитирование соответствующих битов из вышеуказанной ссылки

Если вы отправили длительное асинхронное задание в REST API, тогда API может вернуть результат следующим образом:

HTTP STATUS 202 (Принят)

{
    "task": {
        "href": "/api/company/job-management/jobs/2130040",
        "id": "2130040"
    }
}

Теперь пользовательский агент может отправлять HTTP-запрос GET на URI. / api / company / job-management / jobs / 2130040 периодически для завершения статус работы. Ответ вышеуказанного API сообщит текущему состояние фактической запланированной операции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...