【问题标题】:javascript library for client side storage with server side sync [closed]用于具有服务器端同步的客户端存储的 javascript 库 [关闭]
【发布时间】:2011-01-27 08:54:30
【问题描述】:

我正在寻找一个 javascript 库,它可以让我将数据存储在客户端数据库中,并在后台自动将数据库同步回服务器的数据库

最好是支持各种引擎的东西,就像 jStore for jQuery 一样

环顾四周,我可以找到任何东西

【问题讨论】:

    标签: javascript database client-server data-storage data-synchronization


    【解决方案1】:

    偶然发现了这个问题;为了后代,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 同步。

    在所有情况下,您只需访问本地数据库,它就可以在您连接到互联网时进行同步。

    【讨论】:

      【解决方案2】:

      Store.js 很好地处理了客户端存储。请注意,它支持 IE6+ 以及其他浏览器。对于服务器端存储,您不妨为此编写自己的脚本,因为它应该不难。

      【讨论】:

      • 根据他们的文档:“store.js 在可用时使用 localStorage,并依赖 IE6 和 IE7 中的 userData 行为”。它不存储到 Web SQL 数据库或 IndexedDB。它对数据同步也没有任何作用。
      【解决方案3】:

      自从提出这个问题以来,已经在本地存储和客户端数据库方面做了很多工作。

      Dive Into HTML5 对本地存储选项有一个很好的概述。

      还有几个可用的跨平台 JavaScript 存储库,包括 Lawnchairpersistence.js

      【讨论】:

        【解决方案4】:

        我不是 100% 确定,但我认为没有这样的框架。我建议您查看Google Gears

        Google Gears 支持客户端的离线存储。

        另一种方法是查看TidlyWiki 的源代码。他们创建了一个 wiki 系统,将所有数据存储在客户端。

        【讨论】:

        • 离线存储不像以前那么难了,有一些库支持 Gears、HTML5 本地 DB 和闪存。最初的问题更多是关于与服务器的后台同步(在线时)
        • 另外,Google Gears 正在被删除。
        【解决方案5】:

        我不知道现在有任何图书馆这样做。即使很难,这也是一个可能的想法,我必须说我不确定制作这样的库是否是一项好的努力。

        它必须提供如何向库公开服务器数据、如何计算增量等的示例。这将迫使开发人员根据库的协议更改此服务器端代码。 这对于新的应用程序和网站可能非常有用,但这对于任何具有特定数据结构的现有网站来说可能是一个痛苦,因此努力实现这一点并不比开发自己的 Javascript 来使用已经暴露的当前数据更可取应用程序。 除了潜在的安全问题之外,所有这些都很难在一个通用的 javascript 库中进行管理。

        恕我直言,这是为特定的基于 ORM 的 MVC 框架(例如 Ruby on Rails 或 Django)制作捆绑包或插件的好主意。由于框架本身具有对数据结构的抽象,并且许多安全修复程序已经捆绑在一起,因此制作一个用于执行此操作的捆绑包将更加可重用且更优雅。

        【讨论】:

          【解决方案6】:

          我一直在做这方面的工作。似乎几乎可以使用 Google 文档。大多数 API 都可以通过 Javascript 访问。不幸的是,例外情况包括上传和下载等内容,因此虽然可以从浏览器内部枚举文档、创建文件、更改元数据等,但实际上获取数据要困难得多。

          Google 电子表格确实具有用于访问单个单元格的 Javascript API,因此理论上可以将您的数据存储在电子表格中。不幸的是,API 中有另一个整体,似乎很难将数据写入以前没有数据的单元格,这意味着一旦您创建了空电子表格,就无法填充它......

          【讨论】:

            【解决方案7】:

            据我所知,Safari、Chrome 和 Opera 都基于 SQLite。 SQLite 有一个 .dump 命令,它不仅可以很好地恢复数据库,还可以与另一个数据库同步。 因此,可以使用 .dump 从 Javascript 数据库中调用它,如有必要,修改转储并上传到服务器数据库执行。

            但是,您需要小心 SQL 注入尝试。

            【讨论】:

            • 你能从 Javascript 访问 .dump 吗?
            • 这看起来很适合本地数据库备份,但它不适用于 CRUD 操作(例如可扩展性)。
            【解决方案8】:

            你试过jsonengine吗?

            不确定这个项目还有多少生命力,但这可以满足你的所有要求。

            【讨论】:

            • 据我了解,jsonengine 是服务端 RESTful API 的实现。它提供了使用示例,将数据持久保存到服务器或客户端本地存储。但是,客户端-服务器同步没有做任何事情。
            【解决方案9】:

            Firebase 会这样做,尽管它不是关系模型

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2014-05-25
              • 1970-01-01
              • 1970-01-01
              • 2010-09-11
              • 1970-01-01
              • 2011-04-25
              • 1970-01-01
              相关资源
              最近更新 更多