content-visibility: auto 性能演示 - 跳过渲染优化
对比启用和不启用 content-visibility: auto 时页面大量列表的渲染性能差异。
UD5工具箱
content-visibility: auto 后,浏览器仅渲染视口内及附近的卡片。视口中的卡片会有
紫色边框高亮。尝试滚动或调整卡片数量来观察效果。关闭开关后所有卡片都会被完整渲染。
content-visibility 是一个CSS属性,允许浏览器跳过不可见元素的渲染工作。当设置为 auto 时,浏览器会检测元素是否在视口中,如果不在则跳过其布局和绘制,仅保留占位空间(通过 contain-intrinsic-size 指定)。这能显著减少初始加载时间和滚动时的渲染开销,尤其适合长列表、图库等包含大量内容的页面。
content-visibility: auto 被跳过渲染时,浏览器不知道它的实际大小。如果不指定预估大小,滚动条会不断跳动。contain-intrinsic-size 提供了一个占位尺寸,让浏览器在跳过渲染时仍能预留正确的空间。例如 contain-intrinsic-size: auto 200px 表示使用最后已知大小,若不可用则回退到200px。
content-visibility 在 Chrome 85+、Edge 85+、Opera 71+ 中得到良好支持,Firefox 和 Safari 的支持正在推进中。对于不支持的浏览器,该属性会被忽略,不会产生负面影响(渐进增强)。建议在以下场景使用:长列表页面、图片画廊、折叠内容区域、无限滚动列表等。对于首屏关键内容,避免使用以免影响LCP等指标。
auto 让浏览器自动判断:元素在视口内时正常渲染,离开视口后跳过渲染但仍保留占位空间。hidden 则始终跳过渲染且不保留空间(类似 display: none 但保留 DOM 状态)。auto 适合长列表优化,hidden 适合需要快速切换显示/隐藏的离屏内容。
对比启用和不启用 content-visibility: auto 时页面大量列表的渲染性能差异。
在单页内模拟MPA过渡效果,自定义进场/出场动画,体验View Transitions API丝滑切换。
分别在主线程和 Worker 中使用 Canvas 执行密集绘制,对比 FPS 和主线程阻塞程度。
提供一份涵盖性能、安全、备份、监控等上线前检查清单,可自定义勾选。
在线响应式布局测试器,同时预览常见设备分辨率的网页显示效果,帮助检查前端适配。
记录页面交互触发的所有DOM事件及其目标、冒泡阶段,以日志和瀑布形式展示。
并排展示ease、ease-in、ease-out等不同CSS缓动函数的动画速率差异,辅助选择合适曲线。
屏幕颜色变化时尽快点击,测量从刺激到反应的时间,统计平均反应速度。
激活 beforeunload 事件,尝试刷新或关闭标签页时会弹出浏览器确认提示,展示实现方式。
粘贴代码自动进行语法高亮显示,支持主流编程语言,生成带行号的HTML代码块,方便嵌入博客。
创建一个测试自定义元素,记录并展示 connectedCallback, attributeChangedCallback 等执行顺序。
分别使用 WebGPU 和 Canvas 2D 绘制复杂渐变,实时对比帧率与 CPU/GPU 占用,展示硬件加速优势。
利用 `:target` 伪类创建无需JavaScript的弹窗组件,支持关闭按钮和遮罩层。
生成用于网页各区块间的波浪或倾斜过渡分割线,导出为SVG或CSS代码。
向指定 URL 发送不同 HTTP 方法的请求,显示响应状态码、头部和主体,学习 RESTful API。
显示当前页面动画的实时 FPS 图表,检测掉帧和卡顿,辅助性能优化。
通过Canvas生成不同粒度、颜色的噪点纹理图片,适合用作页面背景或叠加。
选择算法并随机生成数组,以彩色条动画展示排序过程,帮助理解算法。
输入常见的报错片段,基于静态库返回常见的解释和可能的修复方案。
调节频率、包络和波形,合成短促的UI提示音并下载WAV。
常用HTML实体编码(如© ©)的图形化速查表,点击即可复制实体名称或数字代码。
用WebGL或Three.js(轻量版)展示一条旋转的莫比乌斯带,可用鼠标拖拽视角。
在两个视图间切换并调用 document.startViewTransition,观察浏览器默认过渡动画。
覆盖加载、渲染、安全、可访问性等领域的自查清单,勾选后生成得分与建议。
展示各种 HTML5 验证属性(required, pattern, min, max 等)和自定义验证消息的效果。
执行各种属性修改,可视化显示哪些操作触发回流或重绘,帮助编写高性能代码。
配置事件类型和重试间隔,生成用于接收 SSE 的前端 EventSource 代码和后端流示例。
向任意输入URL发送请求,清晰显示响应状态码、头信息和体,类似轻量级Postman。
在散点图上拖拽数据点,实时更新最小二乘回归线,显示斜率和截距。
上传图片,显示红、绿、蓝及亮度通道的直方图,辅助评估曝光与色彩分布。