笔记本

记录灵感与思考的地方

该文探讨Node.js同步/异步文件读取性能差异及阻塞问题。背景:`fs.promises.readFile`比`fs.readFile`慢。问题:同步读取阻塞事件循环,影响并发。方案:避免同步I/O,采用异步方式,如`fs.promises.readFile`,提升服务器并发性能。

Elliot Yang·
158 浏览

本文介绍了 TypeScript 中 `satisfies` 运算符的实用技巧。`satisfies` 允许在不丢失类型推断的情况下为值添加类型注解,特别适用于强类型化函数。文章通过 `URLSearchParams` 的例子,展示了如何使用 `satisfies` 实现更强的类型检查,避免因类型宽松导致的潜在错误。

Elliot Yang·
124 浏览

本文总结了面试准备中可能遇到的技术问题及优化方案。包括:协商缓存的应用场景、JS/CSS对DOM加载的影响及优化、超大表格渲染卡顿的解决方案(如requestAnimationFrame、渐进式加载、预加载/缓存、DOM缓存等)。

Elliot Yang·
127 浏览

本文介绍了 webpack 中自定义 loader 的方法。loader 本质是导出函数的 JavaScript 模块,用于转换资源文件。文章讲解了`this.emitFile`、`this.callback` 的使用,以及Pitching Loader 的概念,并说明如何在 loaders 之间共享 Data,最后提到了 loader 的测试方法。

Elliot Yang·
102 浏览

`:root`与`html`选择器在CSS中作用范围相似,都指向HTML根元素。关键区别在于优先级:`:root`作为伪类,优先级高于`html`。若两者定义相同属性,`:root`声明会覆盖`html`声明。通常用于定义全局CSS变量,确保文档范围内可访问。

Elliot Yang·
105 浏览

Next.js 14.0.4+ Edge Function 打包体积超限问题,源于pages目录SSR禁用组件未分离。解决方案:1) 使用next/dynamic引入大体积组件并禁用SSR;2) 修改next.config.js中webpack配置,确保next-swc-loader的esm选项为true (14.1.0后配置方式变更)。

Elliot Yang·
156 浏览

RESTful API 设计中,`PUT`和`PATCH`均用于更新资源。`PUT`用于完整更新,需提供资源完整表示,且操作幂等;`PATCH`用于部分更新,只需发送修改数据,通常非幂等。`PUT`适用于更新全部数据,`PATCH`适用于更新部分数据。

Elliot Yang·
95 浏览

本文对比了 TypeScript 运行时类型检查的两种方案:Zod 和 class-validator。文章通过作者的实践项目,展示了 Zod 在开发体验上的优势。

Elliot Yang·
95 浏览

本文介绍了 EXIF(可交换图像文件格式)的概念、标准、组成部分及其作用。EXIF 是一种在 JPEG 文件头部插入拍摄信息的格式,包含拍摄参数、器材信息、GPS 数据等。文章还提及了厂商注释及常见标签,并解答了关于位置泄露和修改痕迹的常见问题。

Elliot Yang·
115 浏览