【问题标题】:How to access database in an HTML5/JS app online and offline with one code base?如何使用一个代码库在线和离线访问 HTML5/JS 应用程序中的数据库?
【发布时间】:2015-05-13 21:28:45
【问题描述】:

我正在开发一个 HTML/JavaScript GUI 应用程序,该应用程序将在移动设备上运行(使用 Cordova),也可以作为可从桌面网络浏览器访问的托管网页。我想提供在本地离线数据库(最有可能是 SQL 数据库)中读取和存储数据的选项,以及连接到 Web 服务器和从服务器读取/更新数据的选项。

如果有人做了类似的事情而不必编写两次数据访问例程(一次用于服务器端,一次用于客户端离线存储端),我想得到一些建议。

我正在考虑的一个解决方案(仍然有一些未解决的问题): 我可以在任何平台(PHP、Java、Js 等)中编写服务器,但不想复制离线版本的数据访问代码,所以我想用 JavaScript 做数据访问部分——也许写一个 node.js 服务器,并将 sqlite 用于本地/离线数据库(Cordova 支持)。我不知道如何在网络浏览器上提供类似的本地数据功能。

最简单的选择是在本地机器上运行服务器,但我认为这在 Cordova 或桌面浏览器中并不容易。

【问题讨论】:

  • hood.ie 可能是一个解决方案。它是一个 javascript 层,可以在浏览器中存储数据并同步到服务器(如果在线)。
  • hood.ie 还引导到这个站点,该站点具有类似库和解决方案的列表,一些开源,一些商业服务。 nobackend.org/solutions.html
  • 所以您正在寻找“好的旧 SQL”服务?
  • @ChristianKuetbach 我不确定这是什么意思,你能详细说明一下吗?
  • 我只是想知道,如果你想使用像 oracle、mssql 或 mysql 这样的 SQL 服务器而不是键值或没有 sql 数据库。

标签: javascript php node.js sqlite cordova


【解决方案1】:

查看 PouchDB。 PouchDB 与 CouchDB 兼容,并且是 100% Javascript。您可以使用 CouchDB 进行一些很酷的离线同步到在线同步。

查看https://cloudant.com/blog/pouchdb/http://pouchdb.com/faq.html

【讨论】:

  • 它还具有用于 Node.js、浏览器存储和远程 CouchDB 的相同 API。所以你真的可以在所有三个中重用相同的代码库。 :)
  • PouchDB 似乎是一个不错的解决方案,可以满足我的需要。它是一个 NoSql 数据库,所以我不会免费获得一些 SQL 查询。一些“nobackend.org”解决方案也使用了它(我也在研究它们,看看它们是否做了一些我没想到要求的事情!)
猜你喜欢
  • 2012-09-13
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
  • 1970-01-01
  • 2011-11-29
  • 2017-01-15
  • 2012-09-11
  • 1970-01-01
相关资源
最近更新 更多