![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记
小孩不能抽烟
这个作者很懒,什么都没留下…
展开
-
【读书笔记】vue.js设计与实现--初识渲染器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document&l.原创 2022-04-07 22:35:34 · 520 阅读 · 0 评论 -
【读书笔记】--浏览器工作原理与实践(使用Promise告别回调函数)
promise解决了什么问题?解决了异步编码风格的问题。 第一是嵌套调用,下面的任务依赖上个任务的请求结果,并且在上个任务的回调函数内部执行新的业务逻辑,这样嵌套层次多了以后,代码可读性变差 第二是任务的不确定性,执行每个任务都可能有两种结果,所以体现在代码中就需要对每个任务的执行结果做两次判断,这种对每个任务都需要进行一次额外的错误处理的方式,增加了代码的混乱程度 promise消灭了嵌套调用,合并了多个任务的错误处理。 多个promise嵌套,可以在最后一个promise里面进行异常捕获,这是因原创 2022-03-10 19:55:45 · 272 阅读 · 0 评论 -
【读书笔记】--浏览器工作原理与实践(变量提升:JavaScript代码是按顺序执行的吗)
一、编译阶段 变量提升: 是指的JavaScript代码执行过程中,JavaScript引擎会把变量的定义和函数的声明部分提升到代码开头的位置。变量提升以后,会给变量赋值undefined,函数则会完整的声明。 变量提升意味着变量和函数的声明会在物理层面上移动到代码的最前面。但是这不是准确的,实际上,函数的声明和变量的声明的位置是不会改变的,而是编译阶段,JavaScript引擎会把他们放到内存中。换句话说,JavaScript代码在执行前是需要被编译的,编译完成以后才会进行执行阶段。 总结下,原创 2022-02-22 22:50:35 · 457 阅读 · 0 评论 -
【读书笔记】--浏览器工作原理与实践(浏览器渲染流程)
回顾上一节内容: 在HTML页面内容被提交给渲染引擎之后,渲染引擎首先将HTML数据解析为浏览器能理解的DOM,然后根据CSS样式表,计算出DOM所有节点的样式,然后计算出每个DOM元素的位置,并将这些保存到布局树上。 一、分层 浏览器的页面实际上被分成了很多图层,这些图层叠加后合成了最终的页面。通常情况下,并不是所有布局树的每个节点都包含一个图层,如果一个节点没有对应的图层,呢么这个节点就从属于父节点的图层。 什么情况下,渲染引擎为节点创建新的图层?满足下面两个条件之一,就会被提升为单独的一个图层原创 2022-02-21 22:51:44 · 265 阅读 · 0 评论 -
【读书笔记】--浏览器工作原理与实践(浏览器渲染流程)
整个过程大概分为以下几个流程: 建DOM树、样式计算、布局阶段、分层、绘制、分块、光栅化和合成 一、构建DOM树 简单的说就是HTML经由HTML解析器解析,最终输出的树状结构,就是DOM树 二、样式计算 样式计算的目的是为了计算出DOM节点中每个元素的样式,大概有三个步骤 1)把CSS转换为计算机能够理解的结构(简单的说就是解析css) css主要的来源有三个:通过link标签引入;<style>标签内的css;元素的style属性内嵌的样式 浏览器是无法直接理解css的,原创 2022-02-21 22:50:30 · 150 阅读 · 0 评论 -
【读书笔记】--浏览器工作原理与实践(从输入URL到页面展示,这中间发生了什么)
一、用户输入: 浏览器判断输入的是关键词还是URL, 如果是关键词,会使用默认搜索引擎合成带有搜索关键字的URL 如果是URL,或者是符合url规则的的内容,会带上协议合成完整的URL, 二、URL请求过程: 浏览器进程会将url通过ipc传输给网络进程,网络进程拿到url后会发起url请求流程,过程如下: 1)网络进程会先查看本地的缓存有没有这个请求的资源。如果有这个资源,会直接返回资源给浏览器进程;如果没有该资源,那么会直接进入网络请求流程。这请求前的第一步是dns解析,如果是https请求原创 2022-02-21 20:30:27 · 310 阅读 · 0 评论