前端基础
163

评估一个离线优先的文档编辑器要不要把数据存进浏览器时,IndexedDB 的异步 API 在高频写入场景下写起来啰嗦、性能也一般,OPFS 提供的同步访问句柄和更接近真实文件的操作方式是另一条路,这篇讲清楚它的存储模型、权限模型、和 IndexedDB/Cache Storage 的分工,以及配额和数据清除时该怎么应对。

2.20K 阅读

哪些图该懒加载、哪些绝不能懒,是这篇要讲清楚的判断标准:屏外的列表图该延后请求,首屏的 LCP 主图一旦被 loading=lazy 延后反而拖慢首屏。文中覆盖原生 lazy、fetchpriority、IntersectionObserver、占位尺寸与加载失败的补救。

1.75K 阅读

接口有没有走缓存、样式为什么被覆盖、点击为什么没触发、页面为什么卡、移动端为什么和桌面不一样——这些问题靠 console.log 很难查。梳理 Elements、Network、Sources、Performance、Application 几个面板各自该在什么时候用,以及断点、火焰图、waterfall 这几种排查手段具体怎么落地。

2.14K 阅读

transition 只管一次状态过渡,animation 管的是一段有起止、可循环、可暂停的时间线。这篇讲清楚 @keyframes 的多关键帧序列、animation-fill-mode 决定动画结束后停在哪、animation-play-state 配合 infinite 做可暂停的加载指示器,以及 Web Animations API 这几年成熟起来后能不能替代 CSS 动画。

1.39K 阅读

Google 从 5 月起把 CLS 纳入 Core Web Vitals 排名信号,图片没留高度、字体换脸、动态插入的公告条,都会让页面在用户眼皮底下跳一下。这篇梳理布局偏移的成因、怎么量化、以及从预留空间到合成层动画的一整套应对办法。

1.97K 阅读

localStorage 本身的机制大家都熟,真正难的是在它之上搭一层能长期维护的存储层:多个业务模块共用同一个源时怎么设计键名规范避免互相覆盖,容量逼近上限时怎么做淘汰而不是简单地报错阻断,以及业务字段调整之后,旧版本浏览器里已经写好的数据结构要怎么平滑过渡。这篇整理的是这一层封装的具体设计。

3.73K 阅读

SPA 挂一整天不刷新,内存从一百多 MB 涨到一个多 GB,页面卡到点不动——这类泄漏光看代码基本查不出来。整理这次用 DevTools 排查的完整路径:Performance 面板确认泄漏趋势、堆快照三连拍与 Comparison 视图的读法、Detached DOM 树、闭包持有和定时器未清理各自在快照里长什么样。

2.44K 阅读

骨架屏不是所有页面的标配:什么页面值得上骨架屏、什么页面转圈就够,判断标准比实现更重要。手写 CSS 骨架的实现细节、page-skeleton-webpack-plugin 这类构建期自动生成方案的取舍、SSR 场景的直出骨架、骨架和真实内容布局不一致导致的跳动怎么治,都在这次四个页面的落地里过了一遍。

1.00K 阅读

用 Canvas 2D 在前端合成营销分享海报,要跨过的坑比想象中多:drawImage 的图片加载时序、measureText 手动实现文本换行、clip 裁圆角头像、跨域图片污染画布导致 toDataURL 报错、devicePixelRatio 不处理导出图就是糊的,还有自定义字体没加载完就绘制的时序问题,逐个记录踩坑和解法。