问题 是否建议在客户端使用Web SQL数据库进行存储[关闭]


用例是在脱机时在客户端存储应用程序数据。 是否建议使用Web SQL数据库(Chrome和Safari支持,但不支持FF),或等待浏览器实现索引数据库API?


1631
2018-06-08 22:05


起源

我知道这有点晚了,但是对于未来的项目,请尝试:SequelSphere(www.sequelsphere.com)。它是一个HTML5关系数据库引擎,支持SQL并将其数据存储在Local Persistence中。它不使用WebSQL数据库,而是使用自己的SQL引擎。因此,它可以在任何JavaScript兼容的浏览器中使用。虽然它目前仅支持本地存储,但SequelSphere最终将支持其他本地持久性引擎,如IndexedDB和File API。完全披露:我与SequelSphere公司有关。 :) - John Fowler


答案:


提出此问题9个月后,Web SQL数据库“无法进行主动维护,Web应用程序工作组无意进一步维护”: http://en.wikipedia.org/wiki/Web_SQL_Database

如果您正在开发明年发布的解决方案(特别是移动版),那么IndexedDB是更好的选择。如果您现在需要覆盖(不包括Firefox),则可以使用Web SQL数据库或将JSON对象序列化为LocalStorage。


8
2018-01-24 21:36



我现在采用“序列化JSON对象到LocalStorage”的方法。一旦所有主要浏览器供应商实施,肯定会重新访问IndexedDB方法。现在我觉得这很有用: goo.gl/kwaAU - rnella01


这是一个较旧的线程,但我想把我的2美分投入。截至今天,我们正在使用现有的Web DB API为Safari开发iOS Web应用程序。我没有看到任何迹象表明Safari将在未来版本中放弃这一点,但是由于今天必须在iPad上使用这些应用程序,我们将承担计算风险,并且如果/我们将准备转移到IndexedDB必要时。


2
2018-04-15 03:12



看起来像IndexedDB现在支持最新版本的浏览器,可能是时候尝试它并分享一些经验...... - rnella01
当前的移动浏览器不支持@ mella01 indexeddb。黑莓10是个例外(万事万物!)。参考: caniuse.com/#search=indexeddb - oligofren


看起来WebSQL正在走出困境,被IndexedDB支持所取代。 Firefox和Internet Explorer没有计划支持WebSQL,他们希望为Firefox 4和IE9实现IndexedDB。 Chrome正忙着实施它,我相信Opera和Safari也会效仿。

目前所有支持HTML5的浏览器(以及一些IE版本)都支持 LocalStorage 这是一个只能存储字符串的简单键/值数据库,因此如果您需要更多结构化存储功能,则必须等到今年年底(大约)才能获得广泛的IndexedDB支持。


1
2018-06-09 11:36



我正在寻找一个结构化存储,可能是CouchDB可能是现在的选择。 - rnella01
CouchDB不会在浏览器(AFAIK)中运行,它是在服务器上运行的数据库技术,因此它不适用于HTML5离线存储。 - Sunday Ironfoot
“看起来WebSQL正在逐步推出,被IndexedDB支持取代”这是真的吗?我看过一些关于这个问题的讨论...... sites.google.com/a/chromium.org/dev/developers/design-documents/...  lists.webkit.org/pipermail/webkit-dev/2010-January/011409.html  ...但谷歌仅在1月25日宣布了Chrome Web SQL支持: blog.chromium.org/2010/01/more-resources-for-developers.html  ...自Safari 3.1和iPhone OS 2.0以来,Safari一直支持Web SQL: bit.ly/c7z1Pe - Sam Dutton
Webkit浏览器(Chrome和Safari)已经有一段时间的WebSQL支持,并将继续包含它一段时间(一旦你添加了东西,由于向后兼容性问题需要很长时间才能删除它)。看看这种方式,IE和Firefox都不会实现WebSql,而且它们是市场份额世界上最大的两个浏览器,因此有点排除了WebSql。临时解决方案可能是在您的Web应用程序上同时拥有Sql和IndexedDB代码,但这是一个非常临时的解决方案,Webkit浏览器(和Opera)最终都将实现IndexedDB。 - Sunday Ironfoot


我认为在这样的用例(在线和离线的混合)中,人们还需要考虑数据同步(在本地存储的离线工作的成果之间,以及可能存储在主流在线案例的服务器中的大量工作) )。显然,这两个选项都没有解决这个问题。


1
2018-04-27 15:57



在我们的例子中,我们构建了一个javascript框架,用于在用户在线登录系统时处理同步。 - rnella01


如果你需要Firefox支持,那么显然没有。


0
2018-06-08 22:08



因此,如果您的目标是移动互联网设备(SmartPhones),那么您可以使用Web SQL,因为大多数平台都是WebKit或IE。 - Marc