前端技术文章
-
用 AbortSignal.any() 合并用户取消、超时等 Fetch 取消来源,说明 reason、错误分类、自定义监听器清理和实际边界。255 收藏 -
TypeScript NoInfer 从 TypeScript 5.4 开始用于阻止次要参数参与泛型推导,本文用默认值、选项数组和配置工厂说明如何让主输入决定类型。255 收藏 -
用 link rel=modulepreload 提前准备首屏真正需要的 ES 模块,结合依赖图、URL、crossorigin 与缓存匹配,减少依赖发现等待并避免重复请求。254 收藏 -
前端通过 File System Access API 保存 Blob 时,要在 HTTPS 和用户点击中调用 showSaveFilePicker,再用 createWritable 写入并关闭流;本文说明取消、降级、权限与并发写入边界。254 收藏 -
通过跨三行的卡片与行 subgrid,共享父级标题、说明和操作轨道;给出完整 HTML/CSS 配方、普通网格降级规则,以及换行、间距与新增字段的处理边界。253 收藏 -
IndexedDB 的 openCursor(query, direction) 中,direction 决定按键升序还是降序遍历;key range 限定候选范围;nextunique 和 prevunique 只在索引重复键场景做按键去重。本文用一个实际读取函数把三者的关系讲清楚。253 收藏 -
CSS overflow: clip 可以裁剪溢出内容且不创建滚动容器,适合阴影、徽标等非交互装饰;按钮、链接和输入框要谨慎,本文对比 clip 与 hidden 的滚动、聚焦和 overflow-clip-margin 边界。252 收藏 -
SVG markerUnits 决定 markerWidth、markerHeight 和标记内容使用哪套坐标系。本文比较 strokeWidth 与 userSpaceOnUse,说明它们如何影响箭头随 stroke-width 缩放,并给出 viewBox、refX、refY 的组合排查方法。252 收藏 -
说明IntersectionObserver按列表卡片可见面积比例加载内容的实现,区分threshold与rootMargin,并处理去重、降级和卸载后的异步清理。251 收藏 -
用 Uint8Array.fromBase64 把 Base64 文本直接解码为字节数组,覆盖 base64url、尾块处理、异常分支和旧浏览器降级。251 收藏 -
通过 Vue defineSlots 为 row、summary 具名插槽声明参数类型,配合子组件 slot 数据绑定和父模板解构,说明 TypeScript 工具支持、组件输入与插槽输出的区别,以及静态声明的运行时边界。251 收藏 -
读取 ArrayBuffer 的多字节字段时,DataView 的 offset、字段宽度和 littleEndian 参数必须与协议约定一致。本文用一个字节序读错的故障现场,说明如何定位、修复并封装 Uint16/Uint32 的读取规则。248 收藏 -
用 URL.canParse() 在创建 URL 前预检绝对地址和相对地址,区分 base 参数、布尔结果、构造器异常与兼容降级边界,并说明可解析不等于业务安全。246 收藏 -
@scope 可以把选择器限制在指定 DOM 子树中。本文从 scope root、scope limit、:scope 和 scoping proximity 讲清范围边界,并比较它与普通后代选择器、低特异性写法的取舍。245 收藏 -
用 CSS content-visibility: auto 延迟长列表视口外项目的渲染成本,并结合 contain-intrinsic-size 稳定滚动空间,同时说明 auto、hidden 和 visible 的边界。244 收藏