Как синхронизировать локальное /webStorage HTML5 и серверное хранилище?
Возможный дубликат:
Лучший способ синхронизировать локальную базу данных HTML5 (хранилище WebSQL, SQLite) с сервером (двухсторонняя синхронизация)
В настоящее время я ищу решения для прозрачной и автоматической синхронизации и репликации в клиентском HTML5 localStorage или веб-хранилище и (возможно, в нескольких) серверных хранилищах (единственное требование здесь - простота и доступность установки на регулярный хостинг).
Так есть ли у вас опыт работы с такими библиотеками / технологиями, которые предлагают хранилище данных, которые автоматизируют синхронизацию хранилища клиент-сервер и позволяют данным быть доступными как в автономном режиме, так и в сети, или и то, и другое? Я думаю, что это довольно распространенный сценарий поддержки веб-приложений в автономном режиме...
4 ответа
Это зависит от того, что вы хотите. На http://hacks.mozilla.org/2010/01/offline-web-applications/ есть отличное учебное пособие, с которого можно начать. Если вы не хотите делать что-то сложное, вам не нужно слишком много фреймворка для этого. для тебя. Я думаю, вы могли бы сохранить несколько строк кода на клиенте, используя jQuery. В основном вы хотите сохранить в своем хранилище запись о том, когда последнее изменение было внесено в хранилище, когда последнее обновление было на сервере, и использовать отправку переменной localStorage, закодированной как JSON в XHR (или только бит локального магазин, который вы хотите отправить). Затем на сервере вы можете декодировать JSON и делать с ним все, что хотите, обрабатывая его или просто используя сериализацию PHP для выгрузки его в базу данных.
Если вы имеете в виду что-то конкретное, упомяните об этом.
этот вопрос довольно похож.
Здесь рекомендуется "быстрое подключение" - http://quickconnect.pbworks.com/Using-Enterprise-Synchronization и мое личное предпочтение "persistenceJS" - https://github.com/zefhemel/persistencejs.
Как только я соберу личный опыт, я обновлю этот пост.
Я только что нашел совершенно новый фреймворк, который делает именно это: Impel.inTouch. Его определение схемы кажется немного неудобным, но определенно стоит попробовать.