Как реализовать отложенную выгрузку данных на сервер из phonegap?
Есть одно one-page js application, в котором все работает по ajax. Загрузка из данных БД происходит по мере пользования с системой. Как правильно реализовать отгрузку данных на сервер, если связь может пропадать на долгое время? Вся система уже написана и успешно отправляет ajax-запросами на сервер данные, в случае обрыва соединения пишет ошибку.
В голову приходит следующее:
1) Установить бесконечный тайм-аут отправки. Тут есть большая проблема - если телефон перезагрузить, то сессию уже не восстановишь. Нужна какая-то буферная зона.
2) Отправлять ajax - запросы напрямую, когда соединение есть, а когда его нет - включать специальный оффлайн-режим (перекрашивая фон в красный цвет), а дальше как-то прерывать ajax-запрос, отправляя данные в какую-то буферную зону, данные из которой бы отправились, как устройство бы соединилось с сервером.
Как грамотно реализовать буферную зону на уже готовых ajax-запросах?
Спасибо за понимание. Вопрос может кому-то показаться глупым, но все же.
Обычно это решают накоплением запросов в локальном хранилище, и затем отсылкой их на сервер(желательно групповой).
В вашем случае нужно сделать сервис прослойку между Ajax и приложением, который будет получать запросы на отправку и:
- Проверять есть ли сеть
- Если сеть есть -> отправлять запрос
- Если сети нету -> сохранять данные запроса в localStorage
По таймеру, или при любом другом событии, можно проверять есть ли отложенные данные в localStorage, и отсылать их на сервер (сразу пачкой).