Как динамически отобразить данные на frontend (Vue.js), при изменении данных на backend (PHP)?

К примеру, есть админка frontend которой написан на Vue.js (за state отвечает vuex), а backend на PHP.
По нажатию на кнопку Frontend через Ajax делает запрос к backend и получает ответ в формате json, выборку из базы к примеру список пользователей. Когда жмешь на кнопку все работает, полученные данные актуальные, собственно вопрос в следующем:

В какую сторону копать чтобы сделать динамическое обновление списка пользователей без нажатия на кнопку, появился пользователь - админ автоматически увидел обновленный список?

Заранее благодарен.
  • Вопрос задан
  • 1233 просмотра
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
Если не использовать вебсокеты, то проще всего хранить дату последнего обновления списка и запрашивать её с фронта раз в несколько секунд. Если она больше той, что была при предыдущем запросе данных, то запрашивать список по новой.
Ну а если у нас есть возможность использовать вебсокеты, то тут проще (и одновременно сложнее). В простейшем случае приложение, которое вставляет данные и обслуживает вебсокеты - одно и то же. Тогда просто по сокетам шлем оповещение всем фронтам и они запрашивают обновленный список. Или шлем сразу изменения и фронты изменяют свои данные. При разделении приложения на части получается усложнение: при изменении данных шлем сигнал от той части, которая меняет данные к той части, которая обслуживает вебсокеты и она оповещает фронты. Ну, или интегрируем какую-нибудь систему управления очередями сообщений типа RabbitMQ. В общем, начинается простор для фантазии.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Ответ написан
Комментировать
@shelomanovd
long pooling. Подрубаешся к серверу подвисаешь ответ. Изменил данные вернул на клиент и подписался снова
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
16 апр. 2024, в 12:48
1500 руб./за проект
16 апр. 2024, в 12:30
12000 руб./за проект
16 апр. 2024, в 12:13
10000 руб./за проект