Показать сообщение отдельно
  #4 (permalink)  
Старый 20.06.2023, 13:45
Интересующийся
Отправить личное сообщение для JobLack Посмотреть профиль Найти все сообщения от JobLack
 
Регистрация: 08.06.2017
Сообщений: 24

Сообщение от Aetae Посмотреть сообщение
Есть много разных способов.
Самый примитивный: сделать на сервере эндпоинт типа /progress/<id>, который будет возвращать текущий статус и после запуска долбить этот эндпоинт раз в секунду или типа того.
По сложнее: использовать websocket\Server Sent Events и слать оповещения о прогрессе там.
Не слишком хороший(потому что перезагрузка вкладки всё сломает): не завершать запрос при запуске процесса, а постепенно досылать прогресс в него(типа long polling).
Начал писать ...возникли вопросы...Сам процесс запускается с фронтенда по эндпоинту
router.post("/process", authenticateToken, async (req, res) => {...})
Внутри него в цикле идет обработка JSONа и формирование репорта.
В этом цикле вставил несколько
вызовов функции, в которую передаю процент завершения. (это все в Node)..
Но как из фронтенда получать данные из этой функции. Можно конечно в базу данных писать процент завершения...и отдельным запросом считывать это значение с фронтенда...но это неверно будет неправильно.
Ответить с цитированием