Как реализовать юзер-френдли обновление грида с данными?
Доброго времени суток.
Никогда не сталкивался с такой задачей до сего момента.
Хотелось бы послушать какие уже есть решения, best-practice так сказать.
Имеется грид с данными - реестр. К нему есть форма поиска и могут применятся фильтры и сортировки по полям, так же над строками могут выполнятся действия.
Необходимо его обновлять автоматом без использования f5, т.е. если добавляется запись не тек. юзером - у текущего также должна отобразится новая.
Если бы сортировка была по дате добавления, как во всяких лентах, то просто бы выводили сверху, а тут у нас уже может быть применена сортировка, а также есть действия.
В связи с этим вопрос - как это наиболее удобно сделать для юзера? Речь не о технологиях, а о концепции.
Аяксом делать запрос на сервер с передачей ID последней записи. На сервере вытянуть все записи с id больше переданного и отдать массивом. На клиенте поймать массив, сформировать html и аппендить к таблице
Плохая дорога -- кидать через N-времени запрос на все данные
Хорошая практика - websockets. При изменении данных, сервер сам должен их отдавать, не дожидаясь запроса.
Про сортировки и поиск:
Сортировка и поиск где происходят? На бэкенде или фронте?
В целом алгоритм такой: Получаем ВСЕ данные, включая новые --> Сортировка, фильтры, поиск, ... --> Показываем клиенту
Реализация зависит от того, как у вас работают сортировки и что происходит на фронте вообще
Спасибо.
А как быть с таким сценарием: юзер навел мышку на какое-то действие уже хочет кликнуть, а тут бац и грид обновляется? Пока только в голово приходит чтоб гдето появлялось сообщение, что данные обновлились и кнопка для перезагруки грида. Но тогда смысл автообновления теряется.
Сортировки происходят на бэке. Фронт как раз и надо сделать.