2013-07-12 2 views
5

У меня есть идея для социального веб-приложения, и часть идеи состоит в том, чтобы вытащить данные из localstorage в базу данных сервера. Причина этого заключается в том, что у вас есть идея, и вы хотите включить ее в свой следующий статус для этого социального приложения, но у вас нет сигнала и беспроводной связи в любом месте. Вы записываете статус в приложении, и он сохраняет его в localstorage для использования, когда они возвращаются туда, где они могут подключить свой телефон в Интернете.Можно ли извлекать данные из локального хранилища HTML5 и сохранять в базу данных сервера?

Затем они добираются до места, где они могут подключаться к сети, приложение затем обнаруживает, что есть изменение в localstorage, а затем вытаскивает его оттуда и сохраняет в базе данных сервера.

Возможно ли это, если да, то как вы собираетесь его реализовать? Если это не совсем возможно, вы думаете, что это может быть когда-нибудь в будущем?

Я с нетерпением жду ваших комментариев и ответов на этот вопрос, поскольку, по-моему, это может быть довольно большая дискуссия.

+0

Да, это возможно. Это как раз то, сколько webapps использует localstorage (например, автономный Gmail). – eggyal

ответ

3

Да, возможно, почему бы и нет? Когда вы извлекаете данные из локального хранилища, данные работают так же, как и любая другая переменная Javascript, и никаких ограничений, которые помешали бы вам отправить их на сервер, кроме отсутствия подключения к Интернету, не существует.

Как вы могли бы его реализовать?

Прежде всего вам нужно будет определить состояние соединения, см. this question. Поэтому, когда пользователь пытается обновить свой статус, он проверяет, подключено ли соединение, а затем оно не сохраняется в локальном хранилище.

Используйте методы в связанном вопросе, чтобы определить, когда соединение возвращается, и в этот момент вытащите данные из локального хранилища и отправьте их на сервер через , затем очистите локальное хранилище, чтобы предотвратить отправку повторяющихся данных ,

+0

Огромное вам спасибо за этот ответ, я разобрал его и ничего не нашел, так что это очень поможет. Спасибо.:) – CheckeredMichael

3

Вы можете периодически проверять: navigator.onLine в вашем Javascript, чтобы онлайн-статус устройства. Обратите внимание, что в то время как

navigator.onLine == false 

безопасно говорит, что устройство в автономном режиме,

navigator.onLine == true 

не обязательно означает, что он имеет доступ к Интернету и может выполнить запрос, так что это связано с некоторыми вид сети.

После того, как вы предполагаете, что устройство не в автономном режиме вы отправить запрос AJAX (я рекомендую использовать $ .ajax функции JQuery в), в которой вы POST данные из LocalStorage

(localStorage.getItem('dataToPull')) 

в PHP скрипт , который затем вставляет его в вашу базу данных MySQL.

Если этот запрос ajax терпит неудачу, и вы уверены, что он не получает ошибку PHP/MySQL, можно с уверенностью предположить, что хотя устройство подключено к сети и navigator.onLine верен, нет подключения к интернету. Затем вы можете выполнить некоторую обработку ошибок, например. снова опробуйте устройство за 5 минут.

+0

Спасибо за это, это поможет мне. – CheckeredMichael

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