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 作用域和作用域链