前端技术文章
-
Promise.withResolvers() 把 promise、resolve、reject 放到同一作用域,适合事件回调和外部控制场景。本文从旧构造器写法迁移,说明异常收口、一次性结算与兼容回退。412 收藏 -
Intl.ListFormat 可以按 locale、style 和 type 自动生成自然的并列文本。本文从普通 format 到 formatToParts,说明语言切换、逐项渲染和 formatter 复用应该怎样选择。412 收藏 -
TypeScript中的泛型堪称是一项极为强大的工具,利用它,我们能够编写出更为灵活且具备高度可重用性的代码。泛型的独特之处在于,它允许我们在定义函数、类或者接口的时候,运用类型参数来代表那些尚未明确的类型。在泛型的应用场景中,常见的类型参数命名约定有T、K以及V。当你第一次看到 TypeScrip411 收藏 -
用 role=dialog、aria-modal、焦点陷阱和 Escape 关闭处理原生弹窗交互,让键盘用户打开、操作和退出弹窗时保持清晰的焦点路径。411 收藏 -
本文介绍如何通过原生 Ja vaScript 全局禁用右键菜单、文本选择、剪切复制及拖拽操作,同时保留所有 和 等可编辑元素的默认交互行为,兼顾内容防护与基础可用性。 本文介绍如何通过原生 Ja vaScript 全局禁用右键菜单、文本选择、剪切复制及拖拽操作,同时保留所有 `` 和 `` 等可编辑410 收藏 -
Service Worker 更新时,skipWaiting 负责跳过 waiting,clientsClaim 负责让 active worker 接管已有页面;两者一起使用前,要先确认旧页面引用的资源仍与新 fetch 逻辑兼容。本文给出默认等待、用户确认和即时接管三种版本切换安排。410 收藏 -
用 CSS Grid 的 subgrid 让多张卡片共享父网格的行轨道,解决标题、说明和按钮因内容长度不同而错位的问题,并补充浏览器支持与 fallback 写法。410 收藏 -
用Intl.Segmenter选择字素、词与句子粒度,设置语言优先列表,保留原文片段和UTF-16偏移,并说明词标记、结果差异及能力缺失时的处理。410 收藏 -
结合本地主动关闭意图与 CloseEvent 字段记录断开,说明1000、1006与 wasClean 的判断边界,给出单连接状态封装,并区分关闭事实与恢复策略。410 收藏 -
Promise.allSettled 会按输入顺序返回每个任务的 settled 结果。本文用任务描述数组和同索引合并方式保留 key、label、status、value 或 reason,并说明它与 Promise.all 的边界。410 收藏 -
讲清 Cache API 的 match 方法如何用 ignoreSearch 控制查询参数是否参与缓存匹配,给出静态资源示例、参数边界、响应差异与缓存清理策略。409 收藏 -
用 AbortSignal.any 合并用户取消与请求超时,掌握特性检测、fetch 接入、reason 判断和监听器清理,快速排查请求一创建就中止或超时原因丢失的问题。408 收藏 -
Web Worker 默认会通过 structured clone 复制消息数据。本文用 ArrayBuffer 说明 transferable objects 的写法、发送端 detached 状态、TypedArray 与底层 buffer 的关系,以及结果转回主线程时的生命周期边界。408 收藏 -
用 CSS color-mix() 从一个品牌色派生悬停、浅底和边框颜色,并用对比度阈值验收,兼顾现代浏览器与旧环境降级。406 收藏 -
通过一个批量更新表单行的例子,拆解强制同步布局为何发生,以及如何把尺寸读取与 DOM 写入分开,再用 requestAnimationFrame 合并一帧内的更新。406 收藏