前端技术文章
-
Web Worker 处理大数组时,可以把 ArrayBuffer 放进 postMessage 的 transfer list,移动内存所有权以减少结构化克隆复制。本文说明 TypedArray 与底层缓冲区的区别、byteOffset 元数据、发送后的 detached 状态、兼容降级和 SharedArrayBuffer 的边界。414 收藏 -
Vite 的 import.meta.env 主要在开发服务器启动或生产构建阶段读取并静态替换,浏览器运行时不能直接改写已经打包的值。本文解释构建期配置与运行时配置的边界,并给出外置 config.js 的落地方式。413 收藏 -
Intl.ListFormat 可以按 locale、style 和 type 自动生成自然的并列文本。本文从普通 format 到 formatToParts,说明语言切换、逐项渲染和 formatter 复用应该怎样选择。412 收藏 -
用 role=dialog、aria-modal、焦点陷阱和 Escape 关闭处理原生弹窗交互,让键盘用户打开、操作和退出弹窗时保持清晰的焦点路径。411 收藏 -
用Intl.Segmenter选择字素、词与句子粒度,设置语言优先列表,保留原文片段和UTF-16偏移,并说明词标记、结果差异及能力缺失时的处理。410 收藏 -
结合本地主动关闭意图与 CloseEvent 字段记录断开,说明1000、1006与 wasClean 的判断边界,给出单连接状态封装,并区分关闭事实与恢复策略。410 收藏 -
Web Worker 默认会通过 structured clone 复制消息数据。本文用 ArrayBuffer 说明 transferable objects 的写法、发送端 detached 状态、TypedArray 与底层 buffer 的关系,以及结果转回主线程时的生命周期边界。408 收藏 -
文章 · 前端 | 1星期前 | 前端 · JSON · javascript · JavaScript vite json模块 ES module import attributes with type=json
原生浏览器和 Node ESM 加载 JSON 模块时,应使用 with { type: "json" } 并确认 MIME 类型;Vite 则由构建器处理 JSON 导入。本文按运行环境拆开语法、动态导入、缓存与常见故障边界。406 收藏 -
CSS text-spacing-trim 专门处理中日韩标点的内部空隙与行首行尾间距。本文用四个值对比常见场景,说明字体 OpenType 条件、渐进增强写法和兼容性边界。406 收藏 -
Range.createContextualFragment 的关键不在于把字符串变成节点,而在于让 Range 的 start node 成为 HTML 片段解析上下文。本文用容器和表格示例说明 Range 起点、DocumentFragment、节点检查、特殊标签和可信输入边界。406 收藏 -
通过 noUncheckedIndexedAccess 让 TypeScript 显式处理数组越界、动态字典键和配置缺失,并用收窄、默认值与边界函数建立可靠的索引读取方式。404 收藏 -
文章 · 前端 | 3天前 | 前端 · 流式处理 · javascript · JavaScript ReadableStream TransformStream pipeThrough Streams API
用 JavaScript TransformStream 把文本清理和前缀添加拆成两个可组合阶段,说明 readable、writable、pipeThrough、transform、flush 与 controller 的职责边界,并总结错误传播和输出处理的常见误区。402 收藏 -
用 IntersectionObserver 发现即将进入视口的资源,通过去重队列、unobserve 和 AbortController 实现可停止、可重试的懒加载。401 收藏 -
页面卸载时,fetch 加上 keepalive 可以让小型收尾请求继续发送,但它受未完成请求体总预算约束,不能替代大文件上传或可靠队列。本文给出 pagehide、UTF-8 字节计算、幂等事件 ID 和 sendBeacon 降级写法。401 收藏 -
用 AbortSignal.timeout 给 fetch 请求设置固定时限,并区分 TimeoutError、AbortError、HTTP 错误和网络错误;同时说明 AbortSignal.any 的组合方式与兼容边界。401 收藏