如何从indexedDB获取对象存储?

2023-12-05

我在我的应用程序上有用于网络存储的indexedDb。

我想通过以下代码获取商店。

var store = myapp.indexedDB.db.transaction(['tree_nodes'],'readwrite').objectStore('tree_nodes'); 

它返回错误。我对打开indexeddb数据库和版本更改很熟悉。

错误是Uncaught TypeError: Cannot call method 'transaction' of null

我用断点尝试过。在这种情况下,它可以正常工作,不会出现错误。

我怎样才能到达商店?请帮我。

提前致谢!


该错误可能是因为您的 db 变量为空。这几乎总是因为您尝试将 db 作为回调的结果存储在全局变量中,然后在单独的函数中访问 db 变量,该函数不能保证仅在设置 db 变量后执行,这样浏览器发现您正在访问未初始化的变量。

解决方案很简单(但令人沮丧)。除非您想了解某些库对承诺和延迟对象的实现,否则不能以这种方式使用全局变量。相反,看看 Deni 给出的答案。使用回调并在回调函数中编写代码,而不是全局变量。 'db' 只能从回调 request.onsuccess 函数中访问,并且不是全局的。这就是为什么丹尼会起作用。他的代码只会在保证初始化(不为空)时尝试访问 db。

由于您没有发布周围的代码(事实证明这很重要),因此您需要执行以下操作:

// I am an evil global variable that will not work as expected
myapp.indexedDB.db = 'DO NOT USE ME OR YOU WILL GET AN ERROR';

// I am a good function that only accesses an initialized db variable
function doit() {
    var request = window.indexedDB.open(......);
    request.onsuccess = function(event) {
        // Use this db variable, not your global one
        var db = event.target.result;

            // Note that you can also access the db variable using other means
        // here like this.result or request.result, but I like to use event.target
        // for clarity.

        // Now work with the db variable
        var store = db.transaction(['tree_nodes'],'readwrite').objectStore('tree_nodes');
        // do some more stuff with store....
    };
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从indexedDB获取对象存储? 的相关文章

  • 如何将div内容添加到jspdf中的新页面?

    如何将div内容添加到jspdf中的新页面 我尝试使用 br 它创建了一个新页面 但我看不到内容 div div style margin 3px 430px First Page div div Place content to Seco
  • 边界半径圆

    我有这个代码 span p margin 0 span background color red display inline block border radius 50 span p 25 p p 08 p span 我想在我的跨度上画
  • Li向左浮动,长度动态:最后一行无边框底部

    情况如下 https jsfiddle net rpepf9xs https jsfiddle net rpepf9xs 我想用选择器 nth last child 删除边框底部 但是 如果列表中只有8个 li 则会出现如下错误 ul di
  • 如何修复网站 iframe 错误?

    当我访问此网址时 警告 推荐使用一些广告拦截器 网页链接加载良好 没有错误 但是 当我尝试通过加载同一页面时iframe在我的html代码中 出现错误 我的html代码
  • React JS - 单击时更改颜色并将默认颜色放在所有其他颜色上

    我有 x 个渲染数文章预览依赖于 API 调用的组件 div div Object keys images map index i gt return div div
  • javascript中输入类型时间的值

    我有这个html
  • 如何在 Java 中使用 HTML 解析器和 Apache Tika 来提取所有 HTML 标签?

    我下载了 tika core 和 tika parser 库 但找不到将 HTML 文档解析为字符串的示例代码 我必须删除网页源的所有 html 标签 我能做些什么 如何使用 Apache Tika 进行编码 您想要 html 文件的纯文本
  • 如何在表格的 tbody/thead 部分周围创建边框?

    我正在尝试创建一个包含表格数据的页面 该页面必须显示为多个表格 然而 我有两个相互冲突的要求需要解决 每个表格周围都必须有边框 每个表格的列宽必须能够根据内容重新调整大小 但是 所有表中的列宽必须一致 即列的大小基于所有表中该列中最大的单元
  • 如何使用CSS将背景图像放入选择选项标签中

    我有一个从 json 响应接收的国家 地区下拉列表 并且想要在国家 地区名称旁边添加相应的国家 地区国旗图标 也从 json 响应获取图像 我已经尝试了不同的 jQuery 和 bootstrap 插件 但他们所做的是破坏我以前的选择框样式
  • 为什么 document.getelementbyId 在 Firefox 中不起作用?

    我不明白为什么 document getElementById 在 Firefox 中不起作用 document getElementById main style width 100 当我检查 Firebug 时 它说 类型错误 docu
  • 从顶部开始在同一水平线上显示同一行中的两个 div

    这是我的代码 floating box display inline block width 150px margin 10px border 3px solid 73AD21 after box border 3px solid red
  • 如何保留用户的输入打印?

    我正在尝试添加用户的评论 所以我只是尝试读取输入并将其发送以进行打印 但问题是 一旦我刷新页面或输入另一个输入 打印的输入就会消失 因此 即使刷新页面或重新输入新评论 我也希望始终保持所有用户的显示 代码 div div
  • 如何将 HTML 转换为 Markdown?

    我有一个类似 stackoverflow 的网站 有一个文本区域 人们可以在其中写答案 我用这个 PHP 库 http parsedown org 转换降价 我的意思是我使用该函数来转换 italic to i italic i inclu
  • 单击导航项锚链接时如何关闭切换菜单

    请看我的FIDDLE http jsfiddle net ayhpp8ax 我有一个带有 响应式 导航菜单 带有指向页面上元素的锚链接 的 1 页网站 当浏览器视口小于特定宽度 在我的情况下为 767px 时 使用此 javascript
  • 无法使用 BeautifulSoup4 (Python 3) 抓取特定表

    我想从 Ligue 1 足球网站上抓取一张表格 具体来说 该表包含有关卡片和裁判的信息 http www ligue1 com LFPStats stats arbitre competition D1 http www ligue1 co
  • 防止垃圾邮件按钮呼叫功能

    如何防止调用函数时出现垃圾邮件按钮 就像用户只能在按钮上每 1 秒调用一次该函数 有办法做到吗 因为我尝试了 setTimeout 但没有成功 它仍然在发送垃圾邮件 顺便说一句 我使用 Jquery 这是我的代码
  • 转义 h 轮廓

    因此 我一直在尝试找出在被较低级别的标题吸引后添加内容的最佳方法是什么 section h1 Title of Section h1 h2 Related 1 h2 h2 Related 2 h2 p I NEED THIS TO BE P
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 如何停止TinyMCE删除span标签?

    在我的工作中 前一位程序员决定使用公司网站上精彩的TinyMCE 我遇到的数千个问题之一是 如果原文有的话span标签 当我按下退格键删除一行 p仅标签 全部span标签已从文本中删除 这个错误比另一个错误更具体 我可以删除anything
  • Chrome 浏览器的存储限制

    软限制是多少 用户需要授予超过该限制的权限 硬限制是多少 允许的最大值 2020 年 5 月更新 Chrome 现在允许源使用 60 的存储设备空间 真正的细节 存储设备 是包含 chrome 配置文件目录的分区 更新的文章在这里https

随机推荐

  • 我们是否应该始终在类中包含默认构造函数?

    一位同事问我这个问题 我们是否应该始终在类中包含默认构造函数 如果是这样 为什么 如果不是 为什么不呢 Example public class Foo Foo Foo int x int y 我也有兴趣从专家那里得到一些关于这个问题的见解
  • android:TextView每行限制10个字符

    我从 EditText 读取值并将其写入 TextView editTitle1 addTextChangedListener new TextWatcher public void afterTextChanged Editable s
  • 将EventListener添加到多个复选框

    下面 我有一个简单的表单 其中有 4 个复选框作为席位 我想做的是 当访客选择带有 ID 的座位复选框时A2 and A4 我希望在单击名称为的段落后立即显示这些 ID 及其总价值id demo 单击 立即预订 按钮后 应将总值分配给名为的
  • 连接 Java - MySQL:不允许公钥检索

    我尝试使用连接器 8 0 11 将 MySQL 数据库与 Java 连接 一切似乎都很好 但我得到了这个例外 Exception in thread main java sql SQLNonTransientConnectionExcept
  • React Native iOS 中的键盘语言?

    有没有办法知道 React Native iOS 应用程序中键盘的语言 因为我想切换TextInput根据当前语言自动指示 您可以使用以下方式获取设备区域设置 import NativeModules from react native c
  • iOS:如何在运行时使用音频单元重新采样音频(PCM 数据)?

    如何在运行时 实时使用音频单元重新采样音频 PCM 数据 我的音频单元设置如下 void setUpAudioUnit OSStatus status AudioComponentInstance audioUnit AudioCompon
  • 创建自定义对话框时出现问题

    我在创建自定义对话框时遇到问题 但我没有发现失败 希望有人能帮助我 protected Dialog onCreateDialog int id Dialog dialog null switch id case DIALOG ABOUT
  • 如何从java程序在终端运行命令?

    我需要从 JAVA 程序在 Fedora 16 的终端运行命令 我尝试使用 Runtime getRuntime exec xterm 但这只是打开终端 我无法执行任何命令 我也尝试过这个 OutputStream out null Pro
  • Maven TestNG 项目,将命令行参数传递给 testng.xml 文件

    我有一个 Maven TestNG 项目 并且正在尝试将几个命令行参数传递到 testng xml 文件中 testng xml 文件如下所示
  • 将最新季度财务资产负债表结果导出到单个 Excel 工作簿中?

    下面的代码是我到目前为止所拥有的 感谢我的 Luis先前的问题 当前代码为每个股票代码 以及所有季度 创建一个单独的工作表 目前的结果如下图所示 我想要一张仅包含最新季度业绩的表格 因此 B 列中的结果将是 AMZN C 列将是 MSFT
  • html + css + jquery:切换显示更多/更少文本

    我正在做一个个人项目 遇到一个小问题 这是我的代码 目前有效 http jsfiddle net gvM3b show more click function this text Show Less text toggleClass sho
  • 从我的 YouTube 频道检索我的评论历史记录

    我正在尝试通过 YouTube API 从我的频道检索我自己的评论列表 但找不到方法 这可以通过历史记录获得 https www youtube com feed history comment history 但 API 文档中没有提及
  • 为什么 C++ 中默认对“char”进行签名?

    为什么 char 默认在 128 到 127 范围内 而它应该表示一个文本表示在 0 到 255 范围内的 字符 从这个意义上说 我猜 char 默认情况下应该是无符号的 只有当我们打算将其视为 数字 时 我们才必须添加 signed 关键
  • 如何为文本视图中选定的文本提供背景颜色

    如何为文本视图中选定的文本提供背景颜色 我正在开发基于文本视图的应用程序 我必须更改所选文本的颜色 我尝试使用委托方法 但没有找到任何这样的属性 您能建议一种方法来克服这个问题吗 在 AppStore 限制内无法更改选择颜色 事实上 考虑到
  • python多进程启动失败

    这是我在 python 中执行简单多处理任务的代码 from multiprocessing import Process def myfunc num tmp num num print squared O P will be tmp r
  • 修复 UTF-8 文本中的 mojibakes

    我有一个包含 UTF 8 葡萄牙语文本的文件 不知何故 生成该文件的人选择了错误的编码 并且文本中充满了mojibake IDENTIFICA O instead of identifica o Andr instead of Andr 自
  • 您将如何找到该算法的复杂性?

    function alg1 n 1 a 0 2 for o 1 to n do 3 for t 1 to o do 4 for k t to o t do 5 a a 1 6 return a 如果有人能指导我如何找到最坏的情况 以及如何获
  • WiFiDirectActivity 是什么/在哪里

    我正在尝试理解并实现 中描述的 不完整 代码 使用 Wi Fi 创建 P2P 连接 这是作为一个单独的类添加到我现有的活动中 示例代码中有一行如下 activity setIsWifiP2pEnabled true 但没有显示变量 acti
  • Rails 和 Heroku PGError:其中参数不存在列

    我四处搜索并发现了一些类似的搜索 但没有一个真正详细说明了我遇到的问题 所以我想我应该分享我的发现 Problem当将 Ruby on Rails 项目推送到 Heroku 时 数据库 PostgresQL 我收到了一些在开发环境中没有收到
  • 如何从indexedDB获取对象存储?

    我在我的应用程序上有用于网络存储的indexedDb 我想通过以下代码获取商店 var store myapp indexedDB db transaction tree nodes readwrite objectStore tree n