2010-09-15 4 views
1

У меня есть приложение, которое работает в режиме online, также используя локальную базу данных браузеров. Теперь я хочу, чтобы мое приложение синхронизовало это с моим сервером. Я хочу, чтобы выполнить следующие задачиHTML5 - синхронизировать локальную БД с сервером

  1. Проверьте наличие соединения с регулярными интервалами
  2. Когда у меня есть соединение передачи данных на сервер
  3. Получить обновленные данные присутствуют на сервере.

Что мне делать, чтобы достичь моих целей?

Является ли WebSockets решением для этого?

ответ

0

Для этого вам не нужны WebSockets. Я бы предложил просто использовать XMLHttpRequest. Вам нужно следить за тем, какие локальные данные не синхронизированы с сервером (либо путем размещения ссылок на несинхронизированные данные в специальной «очереди» в автономном режиме, либо с помощью отдельного поля в локальной базе данных, которое говорит «синхронизировано») , При подключении прочитайте несинхронизированные данные и отправьте их по XMLHttpRequest.

+0

Так что для этого мне нужно будет сделать метод, который работает в бесконечном цикле и продолжает проверять соединение, также мне придется написать некоторый код для очередности элементов, добавленных или удаленных, и когда соединение будет у меня будет для отправки данных на сервер. Есть ли лучший подход к этому? – Robin

+0

Несколько браузеров поддерживают «онлайн» и «офлайн». Вы найдете код для обнаружения поддержки таких событий здесь: http://yura.thinkweb2.com/isEventSupported/ Таким образом, если события поддерживаются, вы просто слушаете их, если не можете использовать поток медленного интервала - например, проверку каждые 5 минут, если есть соединение. Или просто легко переключайтесь в режим «офлайн», если пользователь пытается выполнить что-то, что требует подключения, а соединение не удастся, затем выполните медленный опрос в Интернете. – hallvors

Смежные вопросы