# 绑定规则 # 默认绑定 当函数没有被对象限定时,此时函数会被默认绑定在 window 上 输出结果 window window # 隐式绑定 使用对象进行限定函数的调用,此时函数会被绑定在调用函数的对象上 输出结果 b ,说明此时函数中的 this 为 a 这个对象 # 显式绑定 使用 call 、 apply 或 bind 对 this 指向进行明确改变,或使用赋值语句将函数的引用赋值到另一个对象中 输出结果为 a b # new 绑定 使用构造函数新建一个对象时,在构造函数中,this 指向正在新建的这个对象 输出结果为 window a # setTimout 等内置函数 若非箭头函...

# 说在前面 JavaScript 为单线程,意为需要根据任务队列一个任务一个任务的执行下去,任务分为同步任务与异步任务,这两个任务放在不同的地方执行。同步任务放在 主线程 中排队执行,而异步任务则放在 任务队列 中,在需要执行的时刻才会加入主线程中排队执行。异步任务分为 宏任务 与 微任务 ,而微任务的执行要先于宏任务,同步方法执行先于异步任务。 宏任务:(macro) task,可以理解是每次执行栈执行的代码就是一个宏任务(包括每次从事件队列中获取一个事件回调并放到执行栈中执行)。 浏览器为了能够使得 JS 内部 (macro) task 与 DOM 任务能够有序的执行,会在一个 (mac...

# 思路 记录访问服务器的 IP,当一定时间段内访问次数或错误次数超过一定限度时,将请求直接返回 403 不经过逻辑代码 # 代码 # 解释 由于服务器使用了 nginx,常规获取 IP 的方法将只能获取到 localhost,后续章节讲如何配置 将请求的 IP 与请求时间存在数组中,每次请求时统计数组中的该 IP 在一秒钟内、一分钟内、一小时内的请求数量,如果有超过限额的 IP 就将此 IP 放置于黑名单中,再次碰到此 IP 将直接返回 403 而不经过逻辑代码 写法并不完善,对于每个请求都将开启一个线程用于定时将 IP 从数组中移除,对于大型网站而言可能会造成性能损失与负载增加。想要改进可...

# 这是什么 ImageSharp 为 C# 第三方绘图库,在.net core 时代开创了跨平台之后,gdi + 作为仅能在 Windows 平台使用的绘图库,失去了广泛性,为了跨平台,绘图需要使用一个第三库。 # 特性 跨平台 能够读取绘制大部分图片格式 暂不支持 Webp 的动图格式 相较于 GDI + 而言,占用内存更多、绘制速度更慢 特殊字符绘制会出现问题,需要独立处理特殊 Unicode 或者 Emoji 字符 提供自动换行的文本绘制方法 # 代码示例 # 新建空白画布 # 从文件读取图片 # 使用 rgb 新建颜色 # 使用 16 进制文本创建颜色 # 变更图片大小、裁剪 # 定...

# 说在前面 逻辑抄自 B 站弹幕姬 - Github # 封包组成 (协议版本 1) # 操作码(OPCode) # 封包(Pack) 封包均为大端顺序。 代码示例 (C#) IPAddress.HostToNetworkOrder() 用于转换大小端 # 解包(Unpack) 代码示例 (C#) 其中, RawDanmaku 为自定义类 # 拉取连接配置 拉取 json https://api.live.bilibili.com/room/v1/Danmu/getConf?room_id={需要拉取的房间号} 从 host_server_list 中任取一个,拼接字符串...

# 准备工具 ROM https://xiaomirom.com/ 秋之盒 payload_dumper # 流程 下载 ROM 解压 ROM,获取 payload.bin 打开 payload_dumper 文件夹,将上一步的文件放入 payload_input 文件夹 启动 payload_dumper.exe , 得到 boot.img 将文件传进设备,并使用面具 app 修补,再传回电脑 打开秋之盒连接设备,进入 fastboot , 单击 刷入Boot.img , 之后点击上方的 重启到系统 即可 打开手机上的面具 app, 点击 安装-直接安装 即可

# 相关资源 getUserMedia API 参考 getDisplayMedia API 参考 # 本篇内容 获取摄像头画面以及捕获桌面视频 # 说在前面 getUserMedia函数 是获取音视频流的方法,能指定设备获取音视频流以及限制只有视频或只有音频 getDisplayMedia函数 用于捕获用户桌面视频流,能指定整个显示器或者是限制某个窗口,单纯依靠浏览器是没办法获取到电脑正在播放的音频,而 Electron 上有捕获音视频的其他方案 # 约束 约束指上面提到的两个函数的参数,能够设置获取视频或音频的各种设置,常用的参数如下: 以上参数均可不写,单纯使用 { audio...

# 说在前面 本文涉及 WebRTC 最基础的部分,最终实现直播的类似效果。预计后面会和 Electron 系列文章合并。 # 相关资源 MDN 上的 WebRTC html5rocks 上的 WebRTC 信令服务器 coturn 服务器 SocketIO # 本篇内容 展示 WebRTC 的连接过程、搭建信令服务器、编译 coturn 服务器 # 关于 WebRTC WebRTC 是谷歌推出的一项十分复杂的音视频项目,包含了网络通信、音视频处理、STUN/TURN 技术等。尽管内核技术很多,但是给出的 API 相当丰富且实用。 WebRTC 最大的特点在于只依靠浏览器就可实现通信,且由于基...

# 说在前面 Electron 是一种使用编写网页的技术作为桌面端程序的一项技术,可以理解为使用网页作为界面的应用程序。优点在于跨平台 ( Windows 、 Linux 、 MacOS )、能够使用现代的网页前端技术、简单美观的网页样式。但是其最终编译结果文件尺寸较大,即使是只有一个空网页最终整个包也有 180MB+。系列文章将以 Vue2 作为框架以 Vuetify 作为前端主题 # 相关资源 Electron 中文文档 cnpm node.js 中文文档 Vuetify # 新建项目 # 安装 node.js node.js 下载网址 一路按 next 就好 验证是否安装成功可以打开任意...