Максимально технический пост с вопросом в конце
Итак, последние 2 недели работал над самым интересным в этом проекте — расчёт рационов. Вчера закончил и возник один вопрос, на который я не знаю ответ. Вероятно из-за отсутствия опыта в работе с такими проектами.
Для понимания о чём речь, картинку страницы скину в комментарии.
Сейчас, когда нажимаю на переключатель, на сервер идёт запрос по API и вносит нужный изменения в БД. Но мне как-то нужно пересчитать данные в таблице и показать изменения пользователю.
Вариант один.
Уровень сложности 1/10:
🔳⬜️⬜️⬜️⬜️⬜️⬜️⬜️⬜️⬜️
Самый простой вариант. После получения успешного ответа от сервера, обновлять страницу сайта. Тем самым будут подтягиваться новые обновлённые данные. Постоянный дерганья страницы не принесёт удовольствия от пользования приложением. Я встречал такие варианты и от этого становилось грустно.
Вариант два.
Уровень сложности 4/10:
🔳🔳🔳🔳⬜️⬜️⬜️⬜️⬜️⬜️
Возвращать JSON всей вкладки рациона и вставлять в нужное место с обновлёнными данными. Уже лучше, нет перегрузки страницы, всё работает. Но меня смущает то, что придётся работать с большим JSON, не уверен, что сервер скажет спасибо за это. Ещё смущает, что для добавления одного корма в рацион, мне придётся дёргать остальные корма из рациона и затрагивать ту часть таблицы, которая остаётся неизменной. Слишком много действий на сервере, при переключении на сайте одного чекбокса.
Вариант три.
Уровень сложности 8/10:
🔳🔳🔳🔳🔳🔳🔳🔳⬜️⬜️
Самый сложный вариант, который пришёл мне в голову. Получать от сервера только те данные, которые необходимо обновить на сайте после переключения чекбокса или изменения веса. Придётся дописывать каждый эндпоинт, чтоб возвращал только нужные данные, потом придумать как вставить обновлённые данные в нужные ячейки таблицы.
Пример 1: После внесения корма в рацион, мне нужно пересчитать всю строку «Итого в рационе» и «Отклонение от нормы».
Пример 2: После изменения веса корма, нужно пересчитать все показатели этого корма под новый вес, пересчитать всю строку «Итого в рационе» и «Отклонение от нормы».
Пример 3: При удалении корма, нужно убрать корм из рациона, по идее вернуть новый список всех кормов с новой индексацией, пересчитать «Итого в рационе» и «Отклонение от нормы».
Итого, кто-то уже реализовывал подобное? Как обновляли данные в таблице? Напишите в комментариях или мне в личку @vadimfominov. Всем спасибо 🤎
Post #662
1.14K
- 🔥 5
- ❤ 1