大师兄
算法
业务开发算法50讲
前端开发
浏览器工作原理与实践
flutter核心技术与实战
java-script核心原理解析
nodejs应用开发实战
反爬虫兵法演绎20讲
reactnative新架构实战课
重学前端
serverless入门课
type-script入门实战笔记
图解googlev8
vue3源码分析
玩转Vue3全家桶
webassembly入门
手把手带你写一个Web框架
web漏洞挖掘实战
跟月影学可视化
搞定音频技术
攻克视频技术
前端工程化
logger
webpack
webpackchain
前端性能优化
react性能调优
移动端开发
android开发高手课
ios开发高手课
产品与用户体验
视觉笔记入门课
杂谈
git实战手册
nodejs
reactjs
ui设计
webpack4系列教程
前端知识体系
剑指offer刷题笔记
思考与成长
设计模式手册
大师兄
算法
业务开发算法50讲
前端开发
浏览器工作原理与实践
flutter核心技术与实战
java-script核心原理解析
nodejs应用开发实战
反爬虫兵法演绎20讲
reactnative新架构实战课
重学前端
serverless入门课
type-script入门实战笔记
图解googlev8
vue3源码分析
玩转Vue3全家桶
webassembly入门
手把手带你写一个Web框架
web漏洞挖掘实战
跟月影学可视化
搞定音频技术
攻克视频技术
前端工程化
logger
webpack
webpackchain
前端性能优化
react性能调优
移动端开发
android开发高手课
ios开发高手课
产品与用户体验
视觉笔记入门课
杂谈
git实战手册
nodejs
reactjs
ui设计
webpack4系列教程
前端知识体系
剑指offer刷题笔记
思考与成长
设计模式手册
浏览器工作原理与实践
01.开篇词
开篇词 | 参透了浏览器的工作原理,你就能解决80%的前端难题
02.宏观视角下的浏览器
01 | Chrome架构:仅仅打开了1个页面,为什么有4个进程?
02 | TCP协议:如何保证页面文件能被完整送达浏览器?
03 | HTTP请求流程:为什么很多站点第二次打开速度会很快?
04 | 导航流程:从输入URL到页面展示,这中间发生了什么?
05 | 渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的?
06 | 渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?
03.浏览器中的JavaScript执行机制
07 | 变量提升:JavaScript代码是按顺序执行的吗?
08 | 调用栈:为什么JavaScript代码会出现栈溢出?
09 | 块级作用域:var缺陷以及为什么要引入let和const?
10 | 作用域链和闭包 :代码中出现相同的变量,JavaScript引擎是如何选择的?
11 | this:从JavaScript执行上下文的视角讲清楚this
04.V8工作原理
12 | 栈空间和堆空间:数据是如何存储的?
13 | 垃圾回收:垃圾数据是如何自动回收的?
14 | 编译器和解释器:V8是如何执行一段JavaScript代码的?
05.浏览器中的页面循环系统
15 | 消息队列和事件循环:页面是怎么“活”起来的?
16 | WebAPI:setTimeout是如何实现的?
17 | WebAPI:XMLHttpRequest是怎么实现的?
18 | 宏任务和微任务:不是所有任务都是一个待遇
19 | Promise:使用Promise,告别回调函数
20 | async/await:使用同步的方式去写异步代码
06.浏览器中的页面
21 | Chrome开发者工具:利用网络面板做性能分析
22 | DOM树:JavaScript是如何影响DOM树构建的?
23 | 渲染流水线:CSS如何影响首次加载时的白屏时间?
24 | 分层和合成机制:为什么CSS动画比JavaScript高效?
25 | 页面性能:如何系统地优化页面?
26 | 虚拟DOM:虚拟DOM和实际的DOM有何不同?
27 | 渐进式网页应用(PWA):它究竟解决了Web应用的哪些问题?
28 | WebComponent:像搭积木一样构建Web应用
07.浏览器中的网络
29 | HTTP/1:HTTP性能优化
30|HTTP/2:如何提升网络速度?
31|HTTP/3:甩掉TCP、TLS 的包袱,构建高效网络
08.浏览器安全
32 | 同源策略:为什么XMLHttpRequest不能跨域请求资源?
33 | 跨站脚本攻击(XSS):为什么Cookie中有HttpOnly属性?
34 | CSRF攻击:陌生链接不要随便点
35 | 安全沙箱:页面和系统之间的隔离墙
36 | HTTPS:让数据传输更安全
09.结束语
结束语 | 大道至简
第二季回归 | 这次我们来专门聊聊V8
结课测试 | 这些浏览器的知识你都掌握了吗?
10.课外加餐
加餐一|浏览上下文组:如何计算Chrome中渲染进程的个数?
加餐二|任务调度:有了setTimeOut,为什么还要使用rAF?
加餐三|加载阶段性能:使用Audits来优化Web性能
加餐四|页面性能工具:如何使用Performance?
加餐五 | 性能分析工具:如何分析Performance中的Main指标?
加餐六|HTTPS:浏览器如何验证数字证书?
浏览器工作原理与实践
浏览器工作原理与实践
01.开篇词
开篇词 | 参透了浏览器的工作原理,你就能解决80%的前端难题
02.宏观视角下的浏览器
01 | Chrome架构:仅仅打开了1个页面,为什么有4个进程?
02 | TCP协议:如何保证页面文件能被完整送达浏览器?
03 | HTTP请求流程:为什么很多站点第二次打开速度会很快?
04 | 导航流程:从输入URL到页面展示,这中间发生了什么?
05 | 渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的?
06 | 渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?
03.浏览器中的java-script执行机制
07 | 变量提升:JavaScript代码是按顺序执行的吗?
08 | 调用栈:为什么JavaScript代码会出现栈溢出?
09 | 块级作用域:var缺陷以及为什么要引入let和const?
10 | 作用域链和闭包 :代码中出现相同的变量,JavaScript引擎是如何选择的?
11 | this:从JavaScript执行上下文的视角讲清楚this
04.v8工作原理
12 | 栈空间和堆空间:数据是如何存储的?
13 | 垃圾回收:垃圾数据是如何自动回收的?
14 | 编译器和解释器:V8是如何执行一段JavaScript代码的?
05.浏览器中的页面循环系统
15 | 消息队列和事件循环:页面是怎么“活”起来的?
16 | WebAPI:setTimeout是如何实现的?
17 | WebAPI:XMLHttpRequest是怎么实现的?
18 | 宏任务和微任务:不是所有任务都是一个待遇
19 | Promise:使用Promise,告别回调函数
20 | async/await:使用同步的方式去写异步代码
06.浏览器中的页面
21 | Chrome开发者工具:利用网络面板做性能分析
22 | DOM树:JavaScript是如何影响DOM树构建的?
23 | 渲染流水线:CSS如何影响首次加载时的白屏时间?
24 | 分层和合成机制:为什么CSS动画比JavaScript高效?
25 | 页面性能:如何系统地优化页面?
26 | 虚拟DOM:虚拟DOM和实际的DOM有何不同?
27 | 渐进式网页应用(PWA):它究竟解决了Web应用的哪些问题?
28 | WebComponent:像搭积木一样构建Web应用
07.浏览器中的网络
29 | HTTP/1:HTTP性能优化
30|HTTP/2:如何提升网络速度?
31|HTTP/3:甩掉TCP、TLS 的包袱,构建高效网络
08.浏览器安全
32 | 同源策略:为什么XMLHttpRequest不能跨域请求资源?
33 | 跨站脚本攻击(XSS):为什么Cookie中有HttpOnly属性?
34 | CSRF攻击:陌生链接不要随便点
35 | 安全沙箱:页面和系统之间的隔离墙
36 | HTTPS:让数据传输更安全
09.结束语
结束语 | 大道至简
第二季回归 | 这次我们来专门聊聊V8
结课测试 | 这些浏览器的知识你都掌握了吗?
10.课外加餐
加餐一|浏览上下文组:如何计算Chrome中渲染进程的个数?
加餐二|任务调度:有了setTimeOut,为什么还要使用rAF?
加餐三|加载阶段性能:使用Audits来优化Web性能
加餐四|页面性能工具:如何使用Performance?
加餐五 | 性能分析工具:如何分析Performance中的Main指标?
加餐六|HTTPS:浏览器如何验证数字证书?