fb79a15508
- 添加 sections 定义文件,包含性能优化各领域分类 - 添加规则模板文件,规范文档结构和标签定义 - 添加异步操作优化规则,包括防止瀑布流、并行化、延迟等待等 - 添加包大小优化规则,包括避免桶式导入、动态导入、预加载等 - 添加服务端性能优化规则,包括 API 路
39 lines
815 B
Markdown
39 lines
815 B
Markdown
---
|
||
title: CSS content-visibility for Long Lists
|
||
impact: HIGH
|
||
impactDescription: faster initial render
|
||
tags: rendering, css, content-visibility, long-lists
|
||
---
|
||
|
||
## CSS content-visibility for Long Lists
|
||
|
||
Apply `content-visibility: auto` to defer off-screen rendering.
|
||
|
||
**CSS:**
|
||
|
||
```css
|
||
.message-item {
|
||
content-visibility: auto;
|
||
contain-intrinsic-size: 0 80px;
|
||
}
|
||
```
|
||
|
||
**Example:**
|
||
|
||
```tsx
|
||
function MessageList({ messages }: { messages: Message[] }) {
|
||
return (
|
||
<div className="overflow-y-auto h-screen">
|
||
{messages.map(msg => (
|
||
<div key={msg.id} className="message-item">
|
||
<Avatar user={msg.author} />
|
||
<div>{msg.content}</div>
|
||
</div>
|
||
))}
|
||
</div>
|
||
)
|
||
}
|
||
```
|
||
|
||
For 1000 messages, browser skips layout/paint for ~990 off-screen items (10× faster initial render).
|