Recent Posts
HTTP状态码
HTTP状态码 1xx信息性状态码 描述 代表请求已被接受,需要继续处理。 这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。 种类 100 Conti...
2024-12-07
回流、重绘
Read More
回流、重绘 回流:布局引擎会根据各种样式计算每个盒子在页面上的大小与位置 重绘:当计算好盒模型的位置、大小及其他属性后,浏览器根据每个盒子特性进行绘制 定义 先来了解一下浏览器的解析渲染机制: 解析HTML,生成DOM树,解析CSS,生成CSSOM树 将DOM树和CSSOM树结合生成渲染树; Lay...
2024-12-06
闭包
Read More
闭包 简单来说,闭包让你能够在一个函数内部定义另一个函数,并且这个内部函数能够访问外部函数的变量,即使外部函数已经执行完毕。 一般函数的词法环境在函数返回后就被销毁,但是闭包会保存对创建时所在词法环境的引用,即便创建时所在的执行上下文被销毁,但创建时所在词法环境依然存在,以达到延长变量的生命周期的目...
2024-11-28
静态资源组织
Read More
静态资源组织 为了最大程度利用缓存,将页面入口(HTML)设置为协商缓存,将 JavaScript、CSS 等静态资源设置为永久强缓存。 为了解决强缓存更新问题,通过消息摘要算法,将文件摘要(hash)作为资源路径(URL)构成的一部分。 消息摘要算法 ,对文件求摘要信息,摘要信息与文件内容一一对应...
2024-11-28
dependency graph
Read More
dependency graph 构建过程: 根据entry创建EntryDependency 对象 调用NormalModuleFactory,根据EntryDependency对象的资源路径创建Module子类 将module解析为ast 遍历ast,找到模块导入语句(import/requir...
2024-11-28
构建流程和原理
Read More
构建流程和原理 Webpack 的核心能力就是静态模块打包能力。Webpack 能够将各种类型的资源 —— 包括图片、音视频、CSS、JavaScript 代码等,通通转译、组合、拼接、生成标准的、能够在不同版本浏览器兼容执行的 JavaScript 代码文件 构建流程 1.初始化 初始化参数:从配...
2024-11-28
@规则
Read More
@规则 @规则(也称为CSS指令或CSS at-rules)是一种特殊的声明,以@符号开头,用于执行不同的任务,比如应用样式到特定媒体类型、定义变量、设置字体、控制条件等。 CSS 里包含了以下 @规则: @font-face用于设置嵌入HTML文档的字体 @font-face {
font-f...
2024-11-27
文档流
Read More
文档流 CSS文档流(Normal Flow)是指在CSS布局中,元素按照其在HTML文档中出现的顺序,从上到下、从左到右排列的自然布局方式。 块级元素: 通常独占一行,宽度默认填满父容器 典型块级元素包括<div>、<p>、<h1>至<h6>、<ul>、<ol>、<li>、<header>、<fo...
2024-11-27
BFC、IFC
Read More
BFC、IFC BFC 块级格式化上下文(Block formatting contexts)。它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。通俗的讲,就是一个特殊的块,内部有自己的布局方式,不受外边元素的影响。 渲染规则 内部的box会在垂直方向一个个排列 属于同一个 BFC ...
2024-11-27
执行上下文
Read More
执行上下文 执行上下文 3 个重要的属性: 变量对象(Variable Object,VO) 作用域链(Scope Chain) this 变量对象 变量对象(VO)是与执行上下文相关的 数据作用域,存储了上下文中定义的 变量 和 函数声明,分为全局上下文的变量对象(GO)和函数上下文的变量对象(活...
2024-11-27
Read More