Code For Better 谷歌开发者之声——使用谷歌浏览器 Chrome 更好地调试_chrome控制台如何修改indexdb的数据

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

  • Elements:在这里可以检查和编辑 DOM 节点和样式属性。
  • Console:可以通过控制台查看和运行 JavaScript 代码。
  • Sources:源代码可在此处获得。你可以调试 JavaScript 代码并添加断点等。
  • Network:调试网络相关的活动。你可以查看和监控网络。
  • Performance:分析速度并优化性能。
  • Memory:通过跟踪内存使用情况来修复与内存相关的问题。
  • Application:可以查看sessionStorage、localStorage、IndexDB、cookies,以及其他应用相关的数据文件。
  • Security:调试证书问题和其他安全问题。
  • Lighthouse:让你审核应用程序的性能、可访问性、SEO 等。

monitor(function) - 监控一个函数

Chrome 中提供了一些控制台实用程序 API,它们为常见的调试任务提供了方便的功能。顾名思义,monitor() 函数是此类控制台函数之一,用于监视特定函数以了解何时调用该函数以及在调用该函数时将哪些参数传递给该函数。

目标函数必须作为参数传递给 monitor() 函数,以便它观察任何调用的指定函数。一旦被调用,就会立即将一条消息记录到控制台,其中包含函数名称及其参数,表明该函数已被调用。

在这里插入图片描述
使用该unmonitor()功能将取消对该功能的监控。

monitorEvents() - 监控 DOM 对象事件

此函数用于监视 DOM 中的对象是否有特定事件或事件。当在指定对象上触发此事件时,该函数立即将事件和对象输出到控制台。

当指定对象上发生任何指定事件时,Event 对象将被记录到控制台。要监视的事件可以是特定事件、事件数组或映射到预定义集合的通用事件“类型”。

此函数接收应监控的对象和特定事件,即monitorEvents(object [, events]). 例如,要监视窗口对象的任何调整大小事件:

monitorEvents(window, "resize");

输出:

在这里插入图片描述
你可以选择性地停止监视对象 ie 上的特定事件unmonitorEvents(object[, events]),或对象 ie 上的所有事件unmonitorEvents(window)

要了解有关此功能的更多信息,请访问文档

table() - 将数组输出为表

从数据库或外部 API 获取数据时,它通常以对象数组的形式出现。想象一下,你正试图在你的 chrome 控制台中预览或读取此返回的数据,以找出在你的应用程序中不起作用的内容。该console.log()函数通常将其显示为难以阅读或分类的文本输出。

你显然希望以更易于阅读的有条理的方式查看所有项目、属性及其相关属性。你可以在 chrome 控制台中使用table()函数即 table(data) 来完成此操作。这种方法以更人性化、更易于阅读和理解的表格格式打印和组织信息。

例如:

const users = [  

    { first: "zhang", last: "san"},  

    { first: "li", last: "si", birthday: "19990919" },

    { first: "wang", last: "wu",},

];

table(users);

在这里插入图片描述
注意:使用 可以实现类似的结果console.table()。

getEventListeners() - 获取事件监听器

使用作为参数传递给它的 DOM 对象调用 getEventListener 函数会返回在该特定对象上注册的所有事件。返回的值是一个对象,其中包含每个注册的事件类型(如点击、按键等)的数组。每个成员数组都包含该事件类型的所有事件,并且可以扩展以探索它们各自的属性,例如它们触发的关联函数。

在这里插入图片描述

debug() - 调试函数

为了修复不符合预期的页面、功能或组件,你通常会添加一个“调试器”;声明函数声明以激活调试器并尝试了解它有什么问题。

但是,这需要你手动进入源代码以添加这些调试器语句。Chrome 允许你直接从控制台执行此操作,而无需使用 debug() 函数访问你的源代码。只需在控制台中调用它并将函数的名称传递给它,它就会自动将调试器注入到函数中,让你可以单步调试代码。

在这里插入图片描述
在控制台中调用debug(functionReference)会增加一个调试器;引用函数声明的第一行上的语句。

DevTools 还提供断点,让你逐行执行代码。你可以通过单击“源”面板中的行号来添加它们。左键单击会自动添加断点,而右键单击数字可以设置条件断点,这对于调试循环非常有用。

在这里插入图片描述
要禁用函数中的所有断点,请使用undebug(functionReference)或使用源面板。

调试期间重启帧

借助 Chrome 新添加的 DevTools Restart Frame 功能,你可以在调试函数时遇到断点后重新运行前面的代码。这意味着你可以在函数中某处暂停后立即重新运行前面的代码。

因此,你可以在当前调用堆栈中穿越时间(尽管在有限的范围内)。

在这里插入图片描述

注意:当你使用 Restart Frame Chrome 时,状态不会恢复。执行指针简单地移动到函数的顶部。

在 DOM 元素上添加断点(属性/模板更改)

有时你可能需要在有条件或动态更改的 DOM 元素上放置断点或调试器。

你可以通过右键单击目标 DOM 元素并选择“中断”->“属性修改”来轻松修改 DOM 元素。此外,你还可以尝试其他一些选项。

在这里插入图片描述

代码片段

在调试时,你可能经常需要一遍又一遍地执行同一行代码,直到你完成故障排除。但是,这会导致你进行大量重复输入或不断地从你最喜欢的代码编辑器复制并粘贴到你的 Chrome 浏览器控制台。

Google Chrome DevTools 有一个代码片段功能,允许你保存代码片段,以便在需要时使用。片段是一段 JavaScript 源代码,你可以保存并重复使用以进行调试。创建的代码片段可以在任何时候在任何网站上的每个调试会话中通过单击按钮来执行,因为它会永久保存,直到手动删除。这可以节省你在每个页面测试中输入重复信息的时间。

在 Chrome 中创建代码片段:

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

t/topics/618679757)**

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

IndexDB是浏览器提供的一种本地存储数据库,它允许网页应用程序在浏览器中存储大量结构化数据,并且可以在无网络连接的情况下访问这些数据。 要在IndexDB中存储数据,你首先需要打开一个数据库。可以使用以下代码创建或打开一个数据库: ```javascript let request = indexedDB.open('myDatabase', 1); request.onerror = function(event) { console.log('Database error: ' + event.target.errorCode); }; request.onupgradeneeded = function(event) { let db = event.target.result; let objectStore = db.createObjectStore('myObjectStore', { keyPath: 'id' }); objectStore.createIndex('name', 'name', { unique: false }); }; request.onsuccess = function(event) { let db = event.target.result; // 可以在这里执行对数据库的操作 }; ``` 在创建或打开数据库后,你可以创建一个对象存储(Object Store)来存储数据。对象存储类似于关系数据库中的表,你可以定义每个对象存储的键路径(keyPath)和索引。 要存储数据IndexDB中,你可以使用以下代码: ```javascript let transaction = db.transaction(['myObjectStore'], 'readwrite'); let objectStore = transaction.objectStore('myObjectStore'); let data = { id: 1, name: 'John Doe', age: 30 }; let request = objectStore.add(data); request.onerror = function(event) { console.log('Error adding data: ' + event.target.error); }; request.onsuccess = function(event) { console.log('Data added successfully'); }; ``` 以上代码创建了一个事务(transaction),然后通过对象存储(object store)的add()方法将数据添加到数据库中。 你可以使用其他方法如put()、get()、delete()等来执行相应的操作。 希望以上信息对你有帮助!如有更多问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值