前端技术文章
-
文章 · 前端 | 1个月前 | 前端 · javascript · Service Worker CacheStorage Cache API caches.open caches.match caches.delete
用 Cache API 为离线资源建立版本化缓存,覆盖 caches.open、cache.addAll、caches.match 与 caches.delete 的协作方式,并处理新版本缓存失败、旧缓存清理和网络回退边界。418 收藏 -
本文详解如何正确实现递归函数,用于检测由 QuestionModel 和 ResponseModel 两类对象嵌套构成的 JSON 结构中,每一层级内是否存在重复的 label 值,并修复原逻辑中因过早 return 导致递归提前终止的缺陷。 这段内容主要讲清楚一件事:怎样把递归函数写对,用来检查由417 收藏 -
CSS 容器样式查询可以用 @container style() 读取父容器上的自定义属性。本文用 card-mode 示例说明无值和值匹配、继承、计算值、@property、命名容器、尺寸组合和兼容降级。414 收藏 -
Promise.withResolvers() 把 promise、resolve、reject 放到同一作用域,适合事件回调和外部控制场景。本文从旧构造器写法迁移,说明异常收口、一次性结算与兼容回退。412 收藏 -
跨文档 View Transitions 不是给单页应用换皮:当前页和目标页要同源并同时用 @view-transition 选择加入,元素命名还要避免冲突。本文从多页站点导航现场出发,给出最小接入、滚动位置处理、浏览器降级和上线验收清单。412 收藏 -
TypeScript中的泛型堪称是一项极为强大的工具,利用它,我们能够编写出更为灵活且具备高度可重用性的代码。泛型的独特之处在于,它允许我们在定义函数、类或者接口的时候,运用类型参数来代表那些尚未明确的类型。在泛型的应用场景中,常见的类型参数命名约定有T、K以及V。当你第一次看到 TypeScrip411 收藏 -
用 CSS Grid 的 subgrid 让多张卡片共享父网格的行轨道,解决标题、说明和按钮因内容长度不同而错位的问题,并补充浏览器支持与 fallback 写法。410 收藏 -
Service Worker 更新时,skipWaiting 负责跳过 waiting,clientsClaim 负责让 active worker 接管已有页面;两者一起使用前,要先确认旧页面引用的资源仍与新 fetch 逻辑兼容。本文给出默认等待、用户确认和即时接管三种版本切换安排。410 收藏 -
本文介绍如何通过原生 Ja vaScript 全局禁用右键菜单、文本选择、剪切复制及拖拽操作,同时保留所有 和 等可编辑元素的默认交互行为,兼顾内容防护与基础可用性。 本文介绍如何通过原生 Ja vaScript 全局禁用右键菜单、文本选择、剪切复制及拖拽操作,同时保留所有 `` 和 `` 等可编辑410 收藏 -
讲清 Cache API 的 match 方法如何用 ignoreSearch 控制查询参数是否参与缓存匹配,给出静态资源示例、参数边界、响应差异与缓存清理策略。409 收藏 -
用 AbortSignal.any 合并用户取消与请求超时,掌握特性检测、fetch 接入、reason 判断和监听器清理,快速排查请求一创建就中止或超时原因丢失的问题。408 收藏 -
通过一个批量更新表单行的例子,拆解强制同步布局为何发生,以及如何把尺寸读取与 DOM 写入分开,再用 requestAnimationFrame 合并一帧内的更新。406 收藏 -
用 CSS color-mix() 从一个品牌色派生悬停、浅底和边框颜色,并用对比度阈值验收,兼顾现代浏览器与旧环境降级。406 收藏 -
文章 · 前端 | 1个月前 | html · javascript · Web Components customElements.whenDefined CustomElementRegistry
页面先出现自定义元素、组件脚本随后加载时,customElements.whenDefined() 可以把初始化放到注册完成之后。本文用一个延迟注册的组件拆开升级时机、重复注册和加载失败边界。404 收藏 -
横向卡片滑动不应只停在 scroll-snap-type:用 scroll-snap-align、scroll-padding 和 scroll-snap-stop 组合出可控的触摸体验,再用键盘焦点、窄屏和快速甩动验收边界。404 收藏