Ответ 1
Я не работал с IndexDB, но проблема дизайна не такая уж необычная. Мое понимание вашего приложения заключается в том, что, когда клиент делает соединение с MongoDB, вы вытягиваете набор документов для локального хранения и отключаетесь. Затем клиент может делать что-то локально (не подключен к серверу данных), а затем отжимать изменения.
Как я вижу, вы должны обрабатывать два общих случая:
- когда сервер MongoDB обновляется и прерывает непрерывность с клиентом, клиент должен будет
- опрос для данных (таймер?) или
- сохранить открытое websocket, чтобы уведомления о потоке через канал
- когда пользователю нужно нажать на измененные данные, поддержите трубку
- вы можете повторно подключиться асинхронно, проверить изменения состояния (разрешать конфликты в соответствии с вашими бизнес-правилами)
- иметь интерфейс на стороне сервера (легкий) для обработки конфликтов (в зависимости от сложности вашего приложения, сравнение временных штампов изменений состояния в MongoDB с индексами IndexedDB должно быть достаточным)