我们正在认真地探索Ionic,PouchDb和CouchDb作为解决我们的需求之一的解决方案,我们需要构建一个移动应用程序,它可以提供离线同步功能,同时也是与平台无关的。
我们的另一个主要要求是,离线模式下的数据必须是持久性的,并且可以增长超过500 MB。由于PouchDb将使用IndexedDB / WebSQL适配器等在离线模式下存储数据,因此在移动和web平台上有一定的大小限制,而且数据在本质上也不是持久性。
然后,我在pouchdb站点本身看到了这篇文章:
http://pouchdb.com/adapters.html
在这里,您可以为Cordova使用SQLite插件,并且可以编写如下内容:
强制PouchDb使用SQLite插件。
var db = new PouchDB('myDB', {adapter: 'websql'});但是,当我使用下面的代码来测试WebSql适配器是否在使用SQLite插件时,无论是在Android ()还是在web平台上,我都会测试这些代码。
db.info().then(console.log.bind(console));sqlite_plugin总是返回false,而且它也没有创建任何.db文件。尽管PouchDb和CouchDb同步运行良好。
Object {doc_count: 5, update_seq: 42, sqlite_plugin: false, websql_encoding: "UTF-8", db_name: "birthdays"…}
1. adapter: "websql"
2. auto_compaction: false
3. db_name: "testDb"
4. doc_count: 5
5. sqlite_plugin: false
6. update_seq: 42
7. websql_encoding: "UTF-8"
8. __proto__: Object
And also it mentionedSQLite插件目前没有通过PouchDB测试套件。它也比直接IndexedDB/WebSQL慢。我们建议避免使用SQLite插件,除非您在iOS中达到了50 to的存储限制,或者需要对数据库文件进行本机访问或预加载访问。
我使用了以下命令来安装SQLite插件:
cordova plugin add https://github.com/brodysoft/Cordova-SQLitePlugin.git以下是离子版本信息:单击此处可查看我当前使用的Ionic版本信息。
PouchDB版本: 5.2.0
如果有人能帮我解决这个问题,我将不胜感激。提前谢谢。
发布于 2016-01-27 20:49:26
有一个使用PouchDB和SQLite插件的Cordova应用程序的演示。大多数情况下,您只需确保SQLite插件<script>在PouchDB <script>之前加载即可。
尽管如此,如果您的应用程序数据是严重的500 GB(半GB!),我建议不要使用PouchDB。特别是如果您不使用同步,那么PouchDB在修订结构上有太多的开销,并且运行缓慢。
直接使用SQLite插件可能更好。希望这能帮上忙!
https://stackoverflow.com/questions/35046932
复制相似问题