- 博客(36)
- 收藏
- 关注
原创 Service worker 入门手册
Web Service worker 的基础知识; Workbox 的使用与配置, 不同的缓存策略, 运行与调试, Service worker 使用注意事项; Service worker 能做什么。
2024-09-27 10:27:56
1332
原创 Web Bluetooth 与点对点连接
学习 web 蓝牙技术,了解蓝牙连接的基础知识,包括蓝牙服务、特性和属性,编写一个 Android 软件实现自定义的蓝牙服务并与 Web Bluetooth 点对点连接通信。
2024-09-07 00:18:37
1763
原创 调试理解 NodeJS 模块机制
通过断点调试,一步一步探索 NodeJS 的启动流程,并深入理解 NodeJS 中的模块机制,了解 CommonJS 的技术细节。
2024-08-24 17:03:35
774
原创 资源加载失败重载与前端升级检测方案
探讨前端资源加载失败时能够采取的策略,如何侦听资源加载失败,并在必要时重载页面;也提出了一种前端版本升级检测的思路。
2024-05-19 22:02:24
1091
原创 从 0 到 1 搭建一个 No Server 的博客能学到什么
记录搭建一个 no server 博客的过程,学到了诸如自定义路由、pwa、service worker、语义标签、vs code 插件编写、预渲染、vite 插件编写、pnpm 补丁等知识。
2024-05-15 22:37:29
674
原创 【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?
通过 frp 内网穿透将闲置手机暴露至公网,并使用 caddy 搭建 webdav 服务,客户端使用 rclone 实现 webdav 挂载,达到类坚果云的效果。
2024-03-11 00:15:34
1597
原创 Pro Git 阅读理解:Git 是如何实现的
阅读 Pro Git 有关实现原理的部分内容,深入理解 Git 实现机制,是如何实现版本控制的,深入理解其内部原理
2024-01-19 04:09:33
558
原创 应用闪退分析与 uniapp 安卓原生插件开发
记录一次 App 闪退分析的过程,了解不同机型对于后台进程回收的策略,并借助 uniapp 原生插件的能力解决相关 bug。
2023-12-03 21:13:39
1068
原创 入职一个月,总结下 uniapp 多端项目遇到的一些问题与解决方案
总结 uniapp 多端项目中遇到的一些坑点,记录解决方式,交流探讨不同解决方式的优缺点,提供相关问题的解决思路。
2023-11-13 21:40:06
1015
原创 记录一次关于 vuepress 滚动恢复的讨论
滚动恢复的学习讨论记录,页面滚动位置的数据应该记录在哪里,vue-router 是如何保存页面的滚动位置的。站在巨人的肩膀上。
2023-09-28 17:00:02
82
原创 深入浅出 GIF
最近写文章时用到了大量的 gif,都是录制视频然后使用一些视频转 gif 的工具,所以对视频转 gif 的原理产生了兴趣,刚好闲着没事,搞懂了 gif 的文件格式以及对应的 lzw 压缩算法,并实现了视频转 gif、图片转 gif 和 gif 播放器,也就有了这篇文章。文章内容涉及 gif 的文件格式、图像压缩算法、颜色量化算法,以及为了在图像压缩算法中更快速的查找而使用的字典树,干货较多内容较长,请耐心观看。也可以在中进行体验。
2023-09-13 09:26:40
281
原创 利用 FileSystem API 实现一个 web 端的残缺版文件管理器
在写这篇文章时本来是准备写相关内容的,但写到一半发现内容好像跟抄MDN文档一样,毕竟现在文件系统相关的 API 还不能算是完整的,已有的内容也没有太多的细节可以深究,所以放弃了单纯写 API 的想法,而是实现了一个残缺的 web 文件管理系统,想以此为切入点去讲解相关的内容。这是这个文件系统的简单页面:以下内容是这个文件管理系统的具体实现和实现过程中的思考。通过不断学习 web 现有的一些 API 我们会发现 web 所拥有的能力越来越多,未来也会出现更多需要使用这些 API 的场景;
2023-08-21 00:13:41
446
1
原创 开发一个 PicGo 插件
最近在搞typora的文档云同步功能,在网上看了一些文章有提到PicGo图片上传工具,于是放到一起折腾了一下,但PicGo默认只支持 7 种图床,搭配插件也无法满足我的需求,于是便想着开发一个高度自定义的上传插件。关于PicGo插件开发,详细信息可看官方文档PicGo-Core。
2023-08-21 00:11:56
125
1
原创 解锁 PDF 文件:使用 JavaScript 和 Canvas 渲染 PDF 内容
最近研究了 Web 的Api,它弥补了 Web 长期以来缺少的能力:操作用户设备中的文件;而如今通过这个 Api 我们能够实现常见的文件操作:创建、删除、修改、移动等。研究与其他相关的知识,我才发现如今的 Web 不单单只是一个网页了,推翻了我以往对于 Web 的认知。具体而言,PWA能够让一个网站安装至用户设备,文件操作系统与允许操作用户文件,能够让我们将已安装网站设为指定文件格式的打开目标,这已经能够代替一些简单的文件处理程序了。
2023-08-21 00:10:09
170
1
原创 upload 组件封装
前一段时间手写了一个文件上传的功能,也研究了HTML5的拖拽 Api,这次想把他们合二为一,写一个Upload组件,封装组件的思路来自ant design和的Upload组件,基本就是照着官网示例结合自己的想法一步一步实现的,不涉及大文件上传等功能。使用框架是 React,组件更多的是接口层面的封装,没有对结构进行过多的处理。
2023-08-21 00:09:21
206
1
原创 什么是函数式编程
关于函数式编程,我们可以参考数学中的函数定义f(X) = Y这段语句可以被解释为:一个函数f接收一个参数X,并根据X计算返回一个结果Y。这样的函数被称为一元函数,即接收一个参数的函数,相应的接收两个参数的函数被称为二元函数;函数式编程借鉴了大量数学函数的思想,通过数学函数的定义我们能够窥见函数式编程的本质。函数必须接收一个参数函数必须返回一个值函数应该基于给定的参数运行,不能依赖于外部环境对于相同的参数X,总是返回相同的结果Y看完数学函数的定义,我们来看看JavaScript中的函数。
2023-08-21 00:08:04
76
1
原创 JavaScript-事件循环
你可能会疑惑,关于事件循环的文章在网上已经有很多了,为什么还要写这样一篇专门解读它的文章呢?其实我本来也以为在看了网上诸多这类文章后对于事件循环的机制已经了然于胸了,但最近一次关于事件循环的讨论狠狠的打了我的脸,让我催生出了写这篇文章的想法,同时希望看到这篇文章的读者们能有所收获。理解JavaScript事件循环对理解代码的执行顺序是非常有帮助的,而想要深入理解,依据规范编写相同逻辑的伪代码则不失为一个好办法。
2023-08-21 00:06:44
78
1
原创 JavaScript-概念-原型与继承
本文介绍了JavaScript中的原型与原型继承相关概念。JavaScript的原型与原型继承虽然提供了强大的扩展能力,但不应该滥用,不建议扩展原生对象的原型,思考一下:如果在项目的某个位置,某个代码修改了原生对象的一些功能,而你并不知晓,当你使用这个对象出现bug时是多么痛啊😭。
2023-08-21 00:06:11
82
1
原创 ES6-新特性详解-异步函数
在学习JavaScript的过程中,理解并灵活运用异步相关知识是一件不容易的事情,这体现在代码可读性、健壮性上,好在ES6出现后挽回了这一局面,我们不再需要编写可读性不高的回调嵌套,也不用为了代码的健壮性而处处小心,这得益于Promise与,它们给我们带来了更优秀的异步方案,今天我们就来学习异步函数相关知识。
2023-08-20 11:53:00
228
1
原创 ES6-新特性详解-类
文章只简要介绍了部分类语法,没有深入探究类的特性,究其原因还是因为JS中的类只是语法糖,若想深入了解JavaScript中的面向对象编程,还是应该学习并理解原型及原型继承,通过原型与原型继承能够模拟出很多模式,包括类。
2023-08-20 11:52:10
71
1
原创 ES6-新特性详解-箭头函数
本文介绍了箭头函数的语法与相关特性。虽然箭头函数语法更简洁,但不应该滥用,不应该为了节省几句代码而忽视了箭头函数的特性。
2023-08-20 11:51:36
131
1
原创 ES6-新特性详解-迭代器与生成器
迭代,指按序重复执行同一段程序,JavaScript在ES6之前,使用计数循环来实现数组的迭代,但它并不理想,因为这种方式特定于某一种数据结构,为次,ES6新增了迭代器和生成器这两个高级特性。ES6迭代器与生成器的出现提供了非常强大的功能,迭代器模式使我们能够自定义重复执行程序的逻辑,而生成器给我们提供了强大的异步流程控制,与生成器相配合的yield让我们能够进行双向的数据传递,基于此,我们能够实现很多高级的模式,像async函数其实就是基于实现的。
2023-08-20 11:50:56
154
1
原创 ES6-新特性详解-Symbol
JS中内置了很多数据类型,如基本数据类型numberstringboolean,引用数据类型object等,而ES6symbol。。本文理解并讲述了ES6中的新增类型symbol。其实symbol类型在一般开发中并不常用,但理解内置符号的特性是有必要的,这些内置符号定义了我们常用的操作符、方法的行为,通过重写内置符号能够让我们进行更深层次的自定义。
2023-08-20 11:50:10
188
1
原创 css 数据类型与兼容处理
编程语言一般都拥有数据类型的概念,不同的数据类型决定了运行时不同的处理方式,但 CSS 也拥有数据类型是我万万没想到的。在我的认知中,CSS 与 HTML 一样,只是用于被浏览器读取解析的文本,学习 CSS 的方式也只是强记一些常用的属性与它们的作用,从未规范的学习过 CSS 的相关知识,也是因为觉得 CSS 相关知识有点薄弱,所以买了本 《CSS 新世界》,从中才知道了 CSS 也是拥有数据类型的。数据类型决定了某个属性的有效取值,而语法则规定了应该怎么排列、书写这些数据类型。
2023-08-20 11:27:14
88
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人