Мне нужна помощь в поиске лучшего кросс-браузерно-совместимого способа "СОХРАНИТЬ" пользовательский ввод и СОХРАНИТЬ его локально (автономный мод) И на сервере (онлайн).Программа будет использоваться Android и iOS.
Я хочу знать, как лучше всего отслеживать прогресс пользователя, когда устройство находится в сети ИЛИ в автономном режиме.
Здравствуйте. Я исследовал AJAX, JSON, XMLHttpRequest, REST, Java и HTML5 (в частности, localStorage).
Сценарий: (чтение книги онлайн / офлайн, сохранениеход страницы)
Пользователь входит в веб-службу, и веб-служба позволяет пользователю загрузить «книгу веб-страниц html» (просмотр в браузере HTML5).
После каждого перелистывания страниц REST API использует GET-запрос для публикации данных Progress на веб-сервере.Одновременно создается строка JSON и сохраняется в файле на сервере.(скажем, «ProgressData.txt»)
В фоновом режиме отдельная «копия» файла ProgressData.txt ЛОКАЛЬНО сохраняется на мобильном устройстве.Затем пользователь покидает интернет-соединение и продолжает читать HTML-книгу.
Когда пользователь восстанавливает соединение, файл ProgressData.txt загружается на сервер с помощью API REST, где он обновляетфайл старого сервера с файлом NEW .txt со всеми данными пользователя ProgressData.
Возможные решения:
Решение HTML5 localStorage выглядит хорошо.jQuery даже упрощает это: http://plugins.jquery.com/project/html5Storage
Прямой Javascript выглядит хорошо для хранилища на стороне сервера, однако у него нет доступа к физическому жесткому диску мобильного устройства, что предотвращает любые виды автономного сохранения.
Java-апплеты выглядят возможными.Плюс не уверен, как работает Java с Android / iOS.
Я не хочу запускать локальный хост (PHP / Apache / Python) с мобильного устройства каждый раз, когда пользователь отключается от сети, однако, возможно, именно в этом и заключается решение.Я наткнулся на этот мощный инструмент: http://couchdb.apache.org/
Вопрос:
Мне нужно знать, как лучше всего отслеживать прогресс пользователя, когда устройство находится в сети ИЛИ в автономном режиме.Каков наилучший способ сделать это?