библиотека javascript для хранения на стороне клиента с синхронизацией на стороне сервера - PullRequest
18 голосов
/ 14 марта 2010

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

предпочтительнее то, что поддерживает множество движков таким же образом, как jStore для jQuery

Оглядываясь вокруг, я могу найти что-нибудь

Ответы [ 9 ]

3 голосов
/ 29 июля 2011

Поскольку этот вопрос был задан, было проделано много работы с локальным хранилищем и базами данных на стороне клиента.

Большой обзор параметров локального хранилища можно найти на Dive Into HTML5 .

Существует также несколько кросс-платформенных библиотек хранения JavaScript, в том числе Lawnchair и persistence.js .

3 голосов
/ 22 ноября 2017

Просто наткнулся на этот вопрос; для потомков CouchDB и CouchBase предназначены для этого:

http://couchdb.apache.org/

Клиент JavaScript:

https://pouchdb.com/

И CouchBase:

https://www.couchbase.com/

Наконец, CouchBase Lite / Mobile:

https://www.couchbase.com/products/lite

Последний предоставляет вам собственную синхронизацию CouchDB / CouchBase.

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

3 голосов
/ 29 июля 2010

Store.js очень хорошо справляется с хранилищем на стороне клиента. Обратите внимание, что он поддерживает IE6 + вместе с другими браузерами. Для серверного хранилища вы могли бы также сделать свой собственный сценарий для этого, поскольку это не должно быть трудным.

1 голос
/ 28 июля 2010

Я не знаю ни одной библиотеки, которая делает это в наше время. Даже несмотря на то, что это возможная идея, я должен сказать, что не уверен, что создание такой библиотеки - это хорошее усилие.

Это должно было бы предоставить примеры того, как выставить данные вашего сервера в библиотеку, как вычислить дельты и так далее. Это заставит разработчика изменить этот код на стороне сервера в соответствии с протоколом библиотеки. Это может быть полезно для новых приложений и веб-сайтов, но это может причинить боль любому существующему сайту с определенной структурой данных, поэтому усилия по его реализации не столь предпочтительны, чем разработка собственного Javascript для этого с текущими данными, уже представленными приложение. Все это, помимо потенциальных проблем безопасности, было бы довольно трудно решить в одной общей библиотеке javascript.

ИМХО, это отличная идея для создания пакетов или плагинов для конкретных основанных на ORM средах MVC, например Ruby on Rails или Django. Поскольку сама инфраструктура имеет абстракцию к структуре данных, и многие исправления безопасности уже объединены вместе, создание связанного с ней пакета будет намного более удобным для повторного использования и более элегантным.

1 голос
/ 14 марта 2010

Я не уверен на 100%, но я думаю, что такой основы нет. Я бы порекомендовал посмотреть на Google Gears .

Google Gears поддерживает автономное хранилище на стороне клиента.

Другой подход - проверить исходный код TidlyWiki . Они создали вики-систему, которая хранит все данные на стороне клиента.

0 голосов
/ 28 ноября 2014

Firebase делает это, хотя это не реляционная модель

0 голосов
/ 14 июня 2012

Вы пробовали jsonengine ?

Не уверен, насколько этот проект жив, но он отвечает всем вашим требованиям.

0 голосов
/ 14 июля 2011

Насколько я знаю, Safari, Chrome и Opera основаны на SQLite. SQLite имеет команду .dump, которая не только хороша для восстановления базы данных, но и для синхронизации с другой базой данных. Поэтому может быть возможно вызвать это из базы данных Javascript с помощью .dump и, если необходимо, изменить дамп и загрузить его в базу данных сервера для выполнения.

Однако вы должны быть осторожны с попытками внедрения SQL.

0 голосов
/ 28 июля 2010

Я работал над этим. Похоже, почти возможно с использованием Google Documents. Большинство API доступно через Javascript. К сожалению, исключения включают в себя такие вещи, как загрузка и выгрузка, поэтому, несмотря на то, что можно перечислять документы, создавать файлы, изменять метаданные и т. Д. Изнутри браузера, на самом деле получить данные намного сложнее.

В электронных таблицах Google есть API-интерфейсы Javascript для доступа к отдельным ячейкам, поэтому теоретически можно хранить ваши данные в электронной таблице. К сожалению, в API есть еще одно целое, в котором довольно сложно записать данные в ячейку, в которой ранее не было данных, а это означает, что после того, как вы создали свою пустую электронную таблицу, вы не сможете ее заполнить ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...