前端技术文章
-
CSS 容器查询让卡片组件根据自身可用宽度改变布局,而不是只看浏览器宽度。本文用商品卡片示例讲清 container-type、@container、断点选择和回归检查。491 收藏 -
文章 · 前端 | 5天前 | 布局 · css · 前端动画 · 浏览器兼容 · 渐进增强 · CSS 前端动画 浏览器兼容 interpolate-size height auto calc-size
CSS 的 height:auto 过去很难直接做平滑过渡。本文从 max-height 和 JavaScript 测量的旧方案切入,演示 interpolate-size: allow-keywords 的最小改造,并核对继承范围、浏览器降级与 prefers-reduced-motion 边界。475 收藏 -
PWA 发布新版本后,用户仍看到旧页面,通常不是浏览器完全没有更新,而是旧页面、waiting 状态和缓存版本同时存在。本文用一个可落地的 Service Worker 更新流程,讲清缓存命名、skipWaiting、clients.claim、提示刷新和回滚检查。448 收藏 -
大文件上传到底该让浏览器把数据交给业务服务,还是直接送到对象存储?本文从流量路径、分片重试、权限边界和完成校验四个维度比较两种方案,并给出基于 Blob.slice、预签名 URL 与 uploadId 的可落地实现边界。448 收藏 -
原生 dialog 和 popover 关闭时直接消失,通常不是 opacity 写错,而是 display 的离散切换没有参与过渡。本文用一组不依赖框架的 CSS/HTML 示例,解释 @starting-style、display、overlay 与 transition-behavior 的配合方式,并给出旧浏览器的降级边界。444 收藏 -
批量导入 CSV 时,解析、校验和结果展示最好拆成可观测的前端流水线:主线程只负责触发与通知,Web Worker 分片处理数据,队列状态和失败原因由明确的质量门禁收口。441 收藏 -
文章 · 前端 | 3星期前 | 前端 · 性能优化 · javascript · 浏览器性能 · PerformanceObserver · JSON解析 PerformanceObserver 浏览器性能 Long Task 主线程卡顿
页面偶发点击无响应,先别急着把锅甩给网络。本文用 PerformanceObserver 记录 50ms 以上长任务,结合 Chrome Performance 面板定位 JSON.parse 和同步渲染造成的主线程阻塞,再用分片处理和 requestIdleCallback 做可验证的修复。421 收藏 -
文章 · 前端 | 2星期前 | 前端 · javascript · 浏览器性能 · 交互优化 · 数据表格 · 前端 性能优化 requestAnimationFrame 布局抖动 表格列拖拽 Pointer Events
表格列拖拽时出现指针跟不上、列宽抖动和松手后跳回,通常不是 Pointer Events 本身慢,而是每个 pointermove 都同步读写布局。本文用 120Hz 屏幕的可复现场景,比较直接写入与 requestAnimationFrame 合帧方案,并给出最终验收指标与边界。397 收藏 -
长列表页面首屏慢时,可以先用 content-visibility: auto 跳过屏外渲染,再用 contain-intrinsic-size 给布局一个合理占位。本文用一组可复现的列表场景说明如何测量收益、避免滚动条跳动,并给出不适合使用的边界。390 收藏 -
文章 · 前端 | 2星期前 | 前端 · javascript · css · 浏览器API · document.startViewTransition CSS View Transitions 页面切换动画
用一个无框架商品列表示例,讲清 CSS View Transitions API 的最小接入、元素命名、同文档切换、降级处理和浏览器兼容边界。375 收藏 -
WebSocket 断线后,如果每个页面都立即重连,网络抖动会迅速变成重连风暴。本文从连接状态、指数退避、随机抖动和页面可见性恢复入手,给出一套可观察、可停止、能回滚的前端重连方案。366 收藏 -
CSS 容器查询让卡片组件根据自身可用宽度改变布局,而不是只看浏览器宽度。本文用商品卡片示例讲清 container-type、@container、断点选择和回归检查。339 收藏 -
同一个后台系统开两个标签页时,登录态、筛选条件或草稿状态很容易互相覆盖。本文用 BroadcastChannel 搭一个可验证的同步层,处理消息去重、版本冲突、页面关闭和不支持时的降级边界。333 收藏 -
小报表可以由浏览器直接生成,大数据量报表则应交给后端异步任务,并通过进度事件和短时下载地址交付。关键不是文件后缀,而是浏览器内存、请求时限、失败重试和权限边界。331 收藏 -
同一张商品卡片放进主栏、侧栏和弹窗后,不该继续按浏览器窗口宽度硬切布局。用 CSS 容器查询让组件根据自己的可用宽度切换网格、字号和按钮排列,并补上不支持时的降级写法。302 收藏