Javascript 和 Sqlite

Posted

技术标签:

【中文标题】Javascript 和 Sqlite【英文标题】:Javascript and Sqlite 【发布时间】:2012-12-29 08:21:37 【问题描述】:

我正在使用 html5 和 javascript 创建一个应用程序。此应用程序将与 Windows 和 ios 6 (iPad) 兼容。我需要使用 javascript 访问本地数据库。这是一个纯粹的离线应用程序,不涉及服务器端。

我的困境是 -

    W3C 不再支持 WebSQL。

    IndexedDB 适用于 Firefox,但不适用于 iOS6。

    最重要的是,我想避免 HTML5 本地数据库存储,因为它会在清除历史记录时清除数据。

我想为应用程序在本地建立一个持久的数据库,比如 SQLite。是否可以使用纯 javascript 访问 SQLite,以便它可以在 Windows 和 iPad 上与 Firefox 一起使用。

编辑:该应用程序不会从 iPad (iOS6) 的浏览器中运行。而是将应用打包成 ipa 文件并安装在 iPad 设备中。

【问题讨论】:

所以 iOS 有对 iOS 应用的 sqlite 支持。 google.com/search?q=iOS+apps+sqlite+javascript 【参考方案1】:

您要查找的是polyfill。

根据HTML5 Please,IndexedDB Polyfill 通过 WebSQL 实现 IndexedDB API。 (polyfill 的作者还在 Mozilla Hacks 上写了一个 article 关于它。)

Facebook 也是polyfill。根据this pull request(另一个项目)的说法,第一个 polyfill 的作者 Parashuram Narasimhan 似乎更喜欢 Facebook 的 polyfill,并且正在考虑退出他自己的项目。 (不过话说回来,Facebook 存储库看起来像是一次性代码转储,可能没有任何持续开发。)

【讨论】:

【参考方案2】:

有几点需要注意。

    它是一个纯客户端应用程序。 不使用网络存储(本地和会话)

剩下的选项是使用 webSQL、IndexedDB、第三方框架或自定义解决方案。

webSQL :- 支持仅限于 webkit 浏览器,并且 w3c 宣布它已死。 Browser support

IndexedDB :- 支持 IE10、chrome 和 Firefox。 Browser support。旧版本的 IE 不支持。

第三方框架 :- sequelsphere 是一个独立于平台的解决方案来解决这个问题。它是一个完全用 javascript 编写并使用 webSQL 或 IndexedDB 的 RDMS。

自定义解决方案 :- Supporting both IndexedDB and WebSQL on a cross platform web app 像本教程一样,我们可以创建自定义跨浏览器数据库解决方案,或者可以使用 lawnchair 像 json 存储选项。

【讨论】:

【参考方案3】:

我们遇到了同样的问题,并在 thread 上得到了答复。

如果您需要单个表 DB,Lawnchair 是一个不错的选择 - 我们需要多个表,因此开发了自己的包装器。

使用 HTML-5 和 JavaScript 创建一个 Web 应用程序,这样它就可以在桌面浏览器和 平板电脑。使用 PhoneGap 使其成为 iPad 的原生应用程序。

【讨论】:

【参考方案4】:

请检查这是否有帮助。您可以将 javascript 用于前端和后端(用于数据库交互)。有很多插件也可用于此框架。 http://www.nodejs.org

【讨论】:

【参考方案5】:

这是 100% 可能的。我可以推荐一个用于在 html5 sqlite 中访问数据的 javascript 库。 文档和示例代码:click here

我已经使用该库制作了一个 android 演示(通过使用 phonegap)。效果很好!

Download the demo here

【讨论】:

以上是关于Javascript 和 Sqlite的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 闭包和 JavaScript 的区别? [关闭]

javascript JavaScript中的枚举和词典,循环/枚举javascript对象

javascript书签复制网页标题和链接

JavaScript 开发进阶:理解 JavaScript 作用域和作用域链

text/javascript 和 application/javascript 之间有啥区别 [重复]

JavaScript 开发进阶:理解 JavaScript 作用域和作用域链