当前位置: 首页 > 面试题库 >

如何访问谷歌浏览器的IndexedDB / LevelDB文件?

萧玮
2023-03-14
问题内容

我想使用Google Chrome浏览器的IndexedDB在客户端保留数据。

想法是稍后通过Node.JS访问chrome之外的IndexedDB。背景技术是在本地跟踪使用行为并将收集的数据存储在客户端上以供以后在没有服务器后端的情况下进行分析的想法。

据我了解,indexedDB是作为LevelDB实现的。但是,我不能与任何工具打开性LevelDB
/库一样的LevelUp /
LevelDown或性LevelDB
JSON的。

我总是收到以下错误消息

leveldb-dump-to-json --file test.json --db https_www.reddit.com_0.indexeddb.leveldb

events.js:141
    throw er; // Unhandled 'error' event
        ^   OpenError: Invalid argument: idb_cmp1 does not match existing   comparator : leveldb.BytewiseComparator
      at /usr/local/lib/node_modules/leveldb-  json/node_modules/levelup/lib/levelup.js:114:34 Christians-Air:IndexedDB

有人可以帮忙吗?Chrome的实现似乎有些特殊/不同。


问题答案:

leveldb中的键是任意二进制序列。客户端实现比较器以定义键之间的顺序。leveldb
的默认比较器等效于strncmp。Chrome的Indexed
DB存储区的比较器更为复杂。如果尝试将leveldb实例与比较器创建的比较器不同,则将以随机的顺序观察密钥,则插入将不可预测或导致损坏-
狗和猫在一起生活,歇斯底里。因此,leveldb可让您命名比较器(持久化到数据库)以帮助检测和避免此错误,这正是您所看到的。Chrome的代码将其索引数据库的比较器命名为
“ idb_cmp1”。

要检查Chrome之外的Chrome的索引数据库leveldb实例之一,您需要实现一个兼容的比较器。该代码位于Chrome的实现中,位于content /
browser / indexed_db /
indexed_db_backing_store.cc中,并且请注意,不能保证此版本在各个版本中均已解决。(当然,除了向后兼容之外)



 类似资料:
  • preview和response为什么不一样? 打印是这样 渲染是这样

  • 概述 indexedDB.open方法 indexedDB实例对象的方法 createObjectStore方法 objectStoreNames属性 transaction方法 createIndex方法 index方法 IDBKeyRange对象 参考链接 概述 随着浏览器的处理能力不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少用户等待从服务器获取数据的时间。 现有的浏

  • 谷歌浏览器可以当问其他页面,但是无法登录账号,打开会显示这个,大佬们如何解决?

  • 我正在测试Google Sheets API,网址为: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append 我正在使用部分来填写请求参数并执行请求(在工作表中添加一行)。 我已经按照在这里: https://developers.google.com/sheets/api/qui

  • 火狐浏览器是符合预期的,没有卡顿;就谷歌不对劲;能删除的代码都删除试过了,也没找到原因。 主要是问问有没有遇到类似情况的。代码不好提供.. 这是性能分析报告,不知道对各位查找问题有没有帮助 链接:https://pan.baidu.com/s/1HW_3XcKbZxlSxt11JD2tkw?pwd=07ry 提取码:07ry

  • 本文向大家介绍谷歌浏览器调试JavaScript小技巧,包括了谷歌浏览器调试JavaScript小技巧的使用技巧和注意事项,需要的朋友参考一下 谷歌浏览器不仅仅可以用来上网,对于开发人员来说,它更像是一款强大的开发辅助工具。 工欲善其事必先利其器,接下来笔者给大家分享一些Chrome的使用方法。 假如读者了解如何在Chrome中添加JavaScript断点,那请继续阅读;否则,自行脑补。 假如有这