惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
雷峰网
雷峰网
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
V
Visual Studio Blog
Jina AI
Jina AI
博客园 - 司徒正美
The Cloudflare Blog
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
S
SegmentFault 最新的问题
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
小众软件
小众软件
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
WordPress大学
WordPress大学
爱范儿
爱范儿
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏

博客园 - meetviolet

浅谈AI与Skill——从Claude Code看AI工具如何重塑技能价值 Linux-非Root用户-配置深度学习环境 学习清单 前端优化手段 react和vue的区别及优缺点 es5和es6的区别 伪数组和数组 盒模型 React生命周期 浏览器输入URL发生了什么:DNS解析、TCP握手、HTTP缓存、重定向、服务器状态码、渲染引擎和JS引擎互斥、渲染过程、浏览器进程、网络进程、渲染进程 token能放在cookie中吗 new关键字的作用 defer和async区别 XSS跨站脚本攻击(Cross Site Scripting) CSRF跨站点请求伪造(Cross Site Request Forgery)攻击 浏览器垃圾回收机制:栈垃圾回收、堆垃圾回收、新生区老生区、Scavenge算法、标记-清除算法、标记-整理算法、全停顿、增量标记 CSS尺寸设置的单位:px、rem、em、vw、vh es6中箭头函数和this指向 js中null和undefined的区别
浏览器如何渲染页面
meetviolet · 2022-09-05 · via 博客园 - meetviolet

浏览器拿到HTML,

先将HTML转换成dom树,

再将CSS样式转换成stylesheet,

根据dom树和stylesheet创建布局树,

对布局树进行分层,

为每个图层生成绘制列表,

再将图层分成图块,

紧接着光栅化将图块转换成位图,

最后合成绘制生成页面。

分层的目的:

避免整个页面渲染,把页面分成多个图层,尤其是动画的时候,把动画独立出一个图层,渲染时只渲染该图层就ok,transform,z-index等,浏览器会自动优化生成图层

光栅化目的:

页面如果很长但是可视区很小,避免渲染非可视区的样式造成资源浪费,所以将每个图层又划分成多个小个子,当前只渲染可视区附近区域