【问题标题】:Use indexedDB instead of webSQL in Chrome not working anymore在 Chrome 中使用 indexedDB 而不是 webSQL 不再起作用
【发布时间】:2018-06-07 00:48:45
【问题描述】:

我使用 PouchDB 将数据存储在 localDB 中,然后存储在远程 CouchDB 中。从现在开始,PouchDB 在 Chrome 中只使用 indexedDB 作为 localDB,但现在它使用 webSQL(在 v. 56 中)。在 PouchDB 按预期使用 indexedDB 的 Chrome Canary 或 Firefox 中,我没有遇到这个问题。

我用这段代码看是用indexedDB还是webSQL:

var pouch = new PouchDB('myDB');
console.log(pouch.adapter);

【问题讨论】:

  • 您是否尝试过像new PouchDB('myDB', {adapter: 'idb'}); 那样手动设置适配器?请参阅adapters doc
  • 它返回Uncaught Error: Invalid Adapter: idb at new Oe (pouchdb-6.1.1.min.js:8)(仅在 Chrome 56 中)。

标签: javascript google-chrome indexeddb pouchdb web-sql


【解决方案1】:

试试:

PouchDB.adapters

在您网站的控制台中。它应该提供一个包含所有可用适配器的对象。

另外,您可以在控制台中输入PouchDB.preferredAdapters 以查看它是否显示在那里。如果它显示为 'idb' 它是可用的(它应该),那么你应该能够只使用 new PouchDB('name', {adapter: 'idb'});

【讨论】:

  • 好像idb不可用。 PouchDB.adapters 输出 websqlhttphttpsPouchDB.preferredAdapters 输出 websql.
  • 太奇怪了。尝试将 chrome 重新安装到推荐的最新版本
  • 哦,我的错!我混淆了两个问题......实际上PouchDB.adapters在Chrome中显示idb。我观察到在 Chrome iOS 上(因为 idb 不可用)......在 chrome 56 上,创建新数据库给了我这个消息:PouchDB is downgrading "myDB" to WebSQL to avoid data loss, because it was already opened with WebSQL. 我不能使用new PouchDB('name', {adapter: 'idb'});,因为该代码也用于 idb 的 iOS给出一个错误。
猜你喜欢
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2014-09-10
  • 1970-01-01
  • 2014-04-04
  • 2018-02-14
  • 1970-01-01
相关资源
最近更新 更多