首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浏览器里的本地数据库:IndexedDB

IndexedDB 是什么 现代浏览器的本地存储方案,indexedDB 是一项重要的能力组成, 它是可以浏览器端使用的本地数据库,可以存储大量数据,提供接口来查询,还可以建立索引,这些都是其他存储方案...快速起步 IndexedDB 介绍了 IndexedDB 的主要概念之后,可以通过一个简单实用的 CURD 例子来学习日常开发我们是怎么使用 IndexedDB 的,各个 API 细节日后可以慢慢深入学习...值得注意的是虽然创建了四个字段,但在 IndexedDb 数据还是分为主键 id 和数据主体两个部分,并不会像 MYSQL Table 呈现四列。...向数据库添加数据 // 这里的 db 就是第二步的 db 对象, // transaction api 的第一个参数是数据库名称,第二个参数是操作类型 let newItem = { id: 1...,然后更新该数据主体内容。

1.3K10

PWA系列——Fetch API

PWA系列——Fetch API 今天聊聊 xhr 的替代品 Fetch,全局作用域中有个 fetch 方法方便使用。...虽然同样也是处理 HTTP 请求和响应的,但 fetch 有两个不同之处,一个是收到错误的 HTTP 状态码,fetch 方法返回的 Promise 不会被 reject,而是将 resolve 的对象名为...使用 Fetch 我们需要了解 fetch、Request、Response、Headers 以及 Body,这几个都是使用 Fetch API 所需要了解的。...Chrome,Chrome 47之前的默认值是 follow,从 Chrome 47开始是 manual。...同样的我们开发 PWA 应用的时候会面临大量用户数据需要存储客户端的情况。这个时候就需要用到 indexedDB 了,这部分内容较多,一半会说不完,改天有时间梳理一下。 ?

93620
您找到你想要的搜索结果了吗?
是的
没有找到

几个常见的js手写题,你能写出来几道

实现 new 过程:要点:函数第一个参数是构造函数实例的proto指向构造函数的原型属性prototype函数剩余参数要挂载到一个实例对象上构造函数有返回值,就返回这个返回值const createObj...then 函数的参数的处理逻辑,待 Promise 操作有了结果就会执行。...观察者模式存在耦合,主体存储的是观察者实例,而 notify 方法遍历时调用了观察者的 update 方法。而发布订阅模式是完全解耦的,因为调度中心中存的直接就是逻辑处理函数。...then 函数的参数的处理逻辑,待 Promise 操作有了结果就会执行。...观察者模式存在耦合,主体存储的是观察者实例,而 notify 方法遍历时调用了观察者的 update 方法。而发布订阅模式是完全解耦的,因为调度中心中存的直接就是逻辑处理函数。

92530

大厂前端面试考什么?

通过自定义 set 和 get 函数的方式,原本的逻辑插入了我们的函数逻辑,实现了在对对象任何属性进行读写发出通知。...当然这是简单版的响应式实现,如果需要实现一个 Vue 的响应式,需要在 get 收集依赖, set 派发更新,之所以 Vue3.0 要使用 Proxy 替换原本的 API 原因在于 Proxy 无需一层层递归为每个属性添加代理...darg:事件主体是被拖放元素,正在拖放被拖放元素触发。dragenter:事件主体是目标元素,在被拖放元素进入某元素触发。dragover:事件主体是目标元素,在被拖放在某元素内移动触发。...dragleave:事件主体是目标元素,在被拖放元素移出目标元素是触发。drop:事件主体是目标元素,目标元素完全接受被拖放元素触发。...dragend:事件主体是被拖放元素,整个拖放操作结束触发。

32570

常见的js手写题,你能写出来几道

实现 new 过程:要点:函数第一个参数是构造函数实例的proto指向构造函数的原型属性prototype函数剩余参数要挂载到一个实例对象上构造函数有返回值,就返回这个返回值const createObj...then 函数的参数的处理逻辑,待 Promise 操作有了结果就会执行。...观察者模式存在耦合,主体存储的是观察者实例,而 notify 方法遍历时调用了观察者的 update 方法。而发布订阅模式是完全解耦的,因为调度中心中存的直接就是逻辑处理函数。...observer_1 = new Observer() // 创建观察者1let observer_2 = new Observer()let sub = new Subject() // 创建主体sub.add...class Event { // 首先定义一个事件容器,用来装事件数组(因为订阅者可以是多个) #handlers = {} // 事件添加方法,参数有事件名和事件方法 addEventListener

33940

几个常见的js手写题,你能写出来几道

实现 new 过程:要点:函数第一个参数是构造函数实例的proto指向构造函数的原型属性prototype函数剩余参数要挂载到一个实例对象上构造函数有返回值,就返回这个返回值const createObj...then 函数的参数的处理逻辑,待 Promise 操作有了结果就会执行。...观察者模式存在耦合,主体存储的是观察者实例,而 notify 方法遍历时调用了观察者的 update 方法。而发布订阅模式是完全解耦的,因为调度中心中存的直接就是逻辑处理函数。...observer_1 = new Observer() // 创建观察者1let observer_2 = new Observer()let sub = new Subject() // 创建主体sub.add...class Event { // 首先定义一个事件容器,用来装事件数组(因为订阅者可以是多个) #handlers = {} // 事件添加方法,参数有事件名和事件方法 addEventListener

30730

几个常见的js手写题,你能写出来几道_2023-03-13

实现 new 过程:要点:函数第一个参数是构造函数实例的proto指向构造函数的原型属性prototype函数剩余参数要挂载到一个实例对象上构造函数有返回值,就返回这个返回值const createObj...then 函数的参数的处理逻辑,待 Promise 操作有了结果就会执行。...观察者模式存在耦合,主体存储的是观察者实例,而 notify 方法遍历时调用了观察者的 update 方法。而发布订阅模式是完全解耦的,因为调度中心中存的直接就是逻辑处理函数。...observer_1 = new Observer() // 创建观察者1let observer_2 = new Observer()let sub = new Subject() // 创建主体sub.add...class Event { // 首先定义一个事件容器,用来装事件数组(因为订阅者可以是多个) #handlers = {} // 事件添加方法,参数有事件名和事件方法 addEventListener

28210

面试官:用Vue3.0 写过组件吗?如果想实现一个 Modal你会怎么设计?

一、组件设计 组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式 现在有一个场景,点击新增与编辑都弹框出来进行填写,功能上大同小异,可能只是标题内容或者是显示的主体内容稍微不同...Vue2,我们可以借助Vue实例以及Vue.extend的方式获得组件实例,然后挂载到body上 import Modal from '....,可以通过this的形式调用全局 API export default { install(vue) { vue.prototype...._hub['on-cancel'](); }; return { handleConfirm, handleCancel }; } 在上面代码,可以看得到除了使用传统emit...的形式使父组件监听,还可通过_hub属性添加 on-cancel,on-confirm方法实现在API中进行监听 app.config.globalProperties.

1.1K10

Spring Cloud Task 任务执行-命令行启动任务

定义Job,我们需要指定一个或多个Step来执行实际的任务逻辑。...我们定义了一个名为step的步骤,该步骤使用Tasklet接口来执行任务的主体逻辑。...本例,我们只是打印一条消息表示任务已成功完成。接下来,我们定义了一个名为job的作业,并将步骤添加到该作业。在这个示例,我们仅定义了一个步骤,但在实际情况下,一个作业可能包含多个步骤。...})); }}在这个示例,我们使用TaskRegistry将一个名为task1的任务添加到注册表,并将任务的执行逻辑定义为TaskExecutor接口的实现。...除了使用命令行参数来启动任务之外,还可以使用REST API或消息传递来启动任务。Spring Cloud Task提供了相应的API和消息通道来实现这些功能。

57010

小程序内嵌webview实现支付

目前的一个小程序项目需要把客户之前的h5页面嵌入到现在的小程序,并且之前的支付功能要正常。小程序提供了webview开放能力供我们使用,但是不允许webview直接调起微信支付。...webview不能支付,那只能把webview嵌入h5页面的支付挪到小程序,也就是把支付参数传给小程序,小程序调起原生支付,这里面有两种情况,一种是同一主体的,另外一种是非同主体。...拿到参数后可以处理其他逻辑,重点(需要后端配合),生成的支付参数要用小程序的方式,参数格式如下 timeStamp: '', nonceStr: '', package: '', signType:...'MD5', paySign: '', 拿到参数后,只需要在重新打开小程序页面即可,打开方式 let url = ".....注意:记得小程序页面用 decodeURIComponent 解码 非同一主体流程一样,只不过在用webview的时候,把当前小程序的appid一同传过去,生成的支付参数要用传递过去的appid生成,

3.3K1310

一、Axios基础

设置默认超时时间 axios.defaults.timeout = 3300; 设置默认请求头 axios.defaults.headers = { key:'value' } 设置post请求基于请求主体向服务器发送的内容格式...// 如下配置表示 只返回响应返回来的data即响应主体 return result.data },function error(){ // 响应成功 }) 设置默认baseURL...{ console.log(res); }) 完整的请求配置 { // `url` 是用于请求的服务器 URL url: '/user', // `method` 是创建请求使用的方法...` 允许向服务器发送前,修改请求数据 // 只能用在 'PUT', 'POST' 和 'PATCH' 这几个请求方法 // 后面数组的函数必须返回一个字符串,或 ArrayBuffer,或...socketPath: null, // default // `httpAgent` 和 `httpsAgent` 分别在 node.js 中用于定义执行 http 和 https 使用的自定义代理

1.5K20

面向 JavaScript 开发人员的 ECMAScript 6 指南(2):ECMAScript 6 的函数增强

函数声明的解构 JavaScript 的新解构赋值得名于数组或对象可以 “解构” 并提取出组成部分的概念。 第 1 部分 ,我们学习了如何在局部变量中使用解构。它在函数参数声明也很有用。...即使您不熟悉它,箭头函数也很容易理解:箭头前的括号将参数捕获到函数主体,箭头本身表示函数主题的开头。如果主体仅包含一条语句或表达式,则不需要使用花括号。...(就个人而言,我甚至只有一个参数使用括号,但这只是仁者见仁,智者见智的的审美偏好。) 清单 10....这意味着箭头函数定义函数使用 this 值,而不是执行它。 采用规则:完全理解新 this 规则可能需要一段时间。新箭头函数规则并不总是这么直观。...返回到清单 19 的斐波纳契数列,这是向函数添加 for-of 关键字发生的情况: 清单 21.

69620

Node.js 的异步迭代器

除了流,当前没有太多支持异步迭代的结构,但是可以将符号手动添加到任何可迭代的结构,如此处所示。 作为异步迭代器流 异步迭代器处理流非常有用。可读流、可写流、双工流和转换流都支持异步迭代器。...调用有分页功能的 API 你还可以用异步迭代从使用分页的源轻松获取数据。为此,我们还需要一种从 Node https 请求方法提供给我们的流重构响应主体的方法。...我们还将在请求之间添加 7 秒的延迟,最大页面数为5,以避免导致 cat API 过载。 我们还将在请求和最大页数之间添加 7 秒钟的延迟5个以避免猫cat API重载,因为那将是灾难性的。...这些功能已经浏览器中使用了一段时间, Chrome v63+、 Firefox v57+ 和 Safari v11.1 可用。但是当前 IE 和 Edge 不可用。...你是否对使用异步迭代器有什么新想法?你已经程序中使用它们了吗?请在留言中告诉我。

1.6K40

【被墙检测】IT狗被墙检测API调用

最近有一个检测网站是否被墙的需求,找了几个网站,发现IT狗的API比较方便。...API详情 我们先看看IT狗的API的调用方式: 获取页面 URL:https://www.itdog.cn/firewall/[domain] 请求方式:POST 请求主体:more=no&button_click...这个API会返回一段HTML,即在浏览器打开的页面。 防火墙检测 URL:https://www.itdog.cn/public/ajax.aspx?...type=dns_error 请求方式:POST 请求主体:host=[domain]&token=[token] 返回:text/html(但是格式为JSON) 此处的请求主体与防火墙检测的一样,但返回内容稍微有点不同...在网页端测试的页面(即第一个获取页面API),我们可以发现到这一段: 这个就是我们需要的Token了。

3.3K00

一文彻底搞懂Events模块

代码如下: let officeAccounts ={ // 初始化定义一个存储类型对象 subscribes:{ 'any':[] }, // 添加订阅号...发布/订阅模式的特点和结构 三要素: 发布者 订阅者 事件(订阅) 发布/订阅者模式的优缺点 优点 主体和观察者之间完全透明,所有的消息传递过程都通过消息调度中心完成,也就是说具体的业务逻辑代码将会是消息调度中心内...EventEmitter 与 发布/订阅模式的关系 Node.js 的 EventEmitter 模块就是用了发布/订阅这种设计模式,发布/订阅 模式主体与观察者之间引入消息调度中心,主体和观察者之间完全透明...,所 有的消息传递过程都通过消息调度中心完成,也就是说具体的业务逻辑代码将会是消息调度中心内完成。...Node.js 所有的异步 I/O 操作(net.Server, fs.readStream 等) 完成后都会添加一个事件到事件循环的事件队列

83631

一文彻底搞懂Events模块

代码如下: let officeAccounts ={ // 初始化定义一个存储类型对象 subscribes:{ 'any':[] }, // 添加订阅号...发布/订阅模式的特点和结构 三要素: 发布者 订阅者 事件(订阅) 发布/订阅者模式的优缺点 优点 主体和观察者之间完全透明,所有的消息传递过程都通过消息调度中心完成,也就是说具体的业务逻辑代码将会是消息调度中心内...EventEmitter 与 发布/订阅模式的关系 Node.js 的 EventEmitter 模块就是用了发布/订阅这种设计模式,发布/订阅 模式主体与观察者之间引入消息调度中心,主体和观察者之间完全透明...,所 有的消息传递过程都通过消息调度中心完成,也就是说具体的业务逻辑代码将会是消息调度中心内完成。...Node.js 所有的异步 I/O 操作(net.Server, fs.readStream 等) 完成后都会添加一个事件到事件循环的事件队列

91920

企业用户使用备案资源包进行网站备案ICP并开通微信H5支付(附API V3版本支付nodejs代码)

微信H5支付 H5支付是指商户微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付,商户发起本服务呼起微信客户端进行支付。主要用于触屏版的手机浏览器请求微信支付的场景。...网站备案 1.1 验证备案主体信息 首先登陆腾讯云账号,控制台中搜索“网站备案”,进入《我的备案》页面: 图片 这个步骤需要填写的东西比较简单,按公司实际的状况填写即可,期间需要准备公司的营业执照以及负责人身份证的照片...1.2 填写备案网站的信息 主体审核完成之后,可以进行下一步的操作: 图片 《我的备案》页面,点击“新增网站”按钮,进入如下页面: 图片 确认主体信息后会进入下方页面: 图片 填写已注册的域名信息...2.4 支付通知的回调函数 同样新建一个云函数,并创建API网关触发器,此处触发器的域名为上面的notify_url参数 //nodejs解密 const crypto = require('crypto...= body.resource.associated_data; let apiv3key = "";//商户端的APIV3密钥,在网页设置 ciphertext = Buffer.from

4.9K31

Node入门教程(12)第十章:Node的HTTP模块

这是客户端将要发送请求主体的指令。 response 当请求的响应被接收到时触发。 该事件只触发一次。如果没有添加 'response' 事件处理函数,则响应会被整个丢弃。...如果部分请求主体还未被发送,则会刷新它们到流。如果请求是分块的,则会发送终止字符 '0\r\n\r\n'。...通过多次调用该方法,一个请求主体可被发送到一个服务器,在这种情况下,当创建请求,建议使用 ['Transfer-Encoding', 'chunked'] 请求头。.../plain'}) res.write("we are is content"); res.end(); }).listen(8080); 获取GET请求内容 由于GET请求直接被嵌入路径...后面的部分,因此你可以手动解析后面的内容作为GET的参数,Nodejs的url模块的parse函数提供了这个功能。

96260
领券