猫大叔个人博客
猫大叔个人博客
21ido.com :smiley_cat: :smile_cat: :pouting_cat: :heart_eyes_cat: :kissing_cat::smirk_cat: :scream_c
JS字体检测与实现方法解析
JS字体检测与实现方法解析
起因是最近项目要用的这种选字体的需求,所以就调研了一下实现方法,然后就有了这篇笔记 1.Chrome实验性接口 queryLocalFonts Chrome 从v103开始支持该接口,是异步接口,返
从图书馆借书到MongoDB锁:一文看懂锁机制
从图书馆借书到MongoDB锁:一文看懂锁机制
什么是锁 锁是一种机制,用于管理并发访问和维护数据一致性。它确保多个操作不会同时修改相同的数据,从而避免数据冲突。 假设图书馆里有一批热门书籍,很多人都想借阅。图书馆为了管理这些书籍的借阅过程,引入了
深入解读MongoDB事务:从基础到优化
深入解读MongoDB事务:从基础到优化
MongoDB在4.0版本引入了对多文档事务的支持,这一特性使得开发者能够在一个事务中操作多个文档和集合,确保这些操作的原子性和一致性。这对于构建复杂的应用程序和保证数据完整性至关重要。 什么是事务
篡改猴脚本教程之ajax劫持
篡改猴脚本教程之ajax劫持
篡改猴,最强浏览器扩展,英文名Tampermonkey,最早出现在Firefox,名叫油猴(Greasemonkey ),两者有相似的功能和脚本语法,但并非同个扩展。 可以在页面注入JS脚本,实现一些
Beacon API 前端开发中的异步数据传输利器
Beacon API 前端开发中的异步数据传输利器
Beacon API 是一种用于在浏览器中异步发送数据的 Web API。它通常用于在页面关闭前发送一些数据,以确保这些数据不会因为页面的关闭而丢失。 1. 工作机制 当用户关闭页面后,浏览器会执行
深入理解HTTP重定向:从301到308状态码全解析
深入理解HTTP重定向:从301到308状态码全解析
从HTTP状态码的基本概念开始,逐步介绍不同类型的重定向及其应用场景。无论您是初学者还是有经验的开发人员,都能从本文中获得实用的知识和技巧。 1. http状态码 http状态码是客户端和服务器端进
深入理解node.js模块
深入理解node.js模块
JavaScript的思想是一切皆对象,而Node.js编程是基于模块化思想的。 1. 基本概念 Node.js采用了CommonJS模块系统,每个文件都是一个独立的模块,每个模块都有自己的作用域,
npm、yarn和pnpm的古往今来
npm、yarn和pnpm的古往今来
I. 引言 本文将深入探讨这三种包管理工具的背景、特点和使用场景,以帮助读者更好地了解它们,为自己的项目选择合适的工具。从最初的 Node.js 发布到包管理工具的崛起和不断演进,我们将带您一一解读,
当空数组遇上every, some
当空数组遇上every, some
早在17年写过一篇JS数组的文章 <!-- {% post_link 'Web/Javascript数组' 'Javascript数组的every、some、map、filter、forEach
EventSource使用指南
EventSource使用指南
EventSource是基于http协议的推送技术,用于服务器主动向客户端发送数据,而不需要客服端主动请求 1. 优缺点 优点: 1. 基于http1.1,目前浏览器都支持 2. 自动断线重连,无需
什么是灰度测试
什么是灰度测试
1. 灰度的来源 当软件升级迭代在遇到架构或功能大改动(技术层面),或是需求和操作的大调整(用户体验层面),往往不是全量发布,而是先小范围发布,没有问题再增量到全部用户,这一过程,类似由白到黑的过度,
Github Actions实现Hexo自动化部署
Github Actions实现Hexo自动化部署
本文介绍了如何使用GitHub Actions实现Hexo自动化部署,并指出了一些现有YAML代码所引用的脚本比较老导致报错的问题。 Hexo是一个快速、简单且强大的静态博客框架,而GitHub Ac
浅谈JavaScript的线程与进程
浅谈JavaScript的线程与进程
首先,JavaScript 是单线程语言。 1. 进程和线程的关系 一个程序至少有一个进程,而一个进程至少有一个线程。线程是进程的执行单元,是 CPU 调度和分派的基本单位,可以看成实际在干活运算的
VUE代码规范
VUE代码规范
为规范代码特写了本文,但实际由于历史包袱,还有很多jQuery时代的代码,加上人员技术水平不齐,执行起来非常有难度 1. 目的 1. 易于阅读和理解 2. 有助于debug 3. 方便接手的人 4.
ES6笔记(3)类
ES6笔记(3)类
ES5是没有类这个东西,虽然可以写出看起来像类的代码 ```js function Cat (name, color) { let ret = Object.create(Cat.prototyp
Canvas踩坑(2)马克笔效果
Canvas踩坑(2)马克笔效果
画笔里面,马克笔算是比较简单,比较难的是铅笔和毛笔 一般的线是由点连起来的,设置好 `lineCap` 和 `lineJoin` 即可,但马克笔是由块连起来的 当我们拿到一个XY坐标点后,需进行扩大,
Canvas踩坑(1)实时绘制透明线
Canvas踩坑(1)实时绘制透明线
Canvas画线算是最基础的操作,涉及的方法也比较简单 ```js _cv = _canvas.getContext('2d'); _cv.lineWidth = 20 _cv.strokeStyle
element-ui upload组件覆写默认上传行为
element-ui upload组件覆写默认上传行为
element-ui 自带了上传组件,支持多文件,支持文件列表显示,支持定义各种钩子,非常方便 ```html <el-upload ref="upload" :show-fil
异步回调之generator(1)入门篇
异步回调之generator(1)入门篇
Generator 是ES6新特性,是另一种异步编程解决方案,提供了与之前传统函数不一样的语法行为 如果说Promise解决了回调函数的地狱式嵌套,Generator则解决了Promise.then(