浏览器工作原理与实践
狗啃泥
这个作者很懒,什么都没留下…
展开
-
渲染流水线:CSS如何影响首次加载时的白屏时间?
1.css//theme.cssdiv{ color : coral; background-color:black}<html><head> <link href="theme.css" rel="stylesheet"></head><body> <div>geekbang com</div></body></html>当渲染进程接收 HT原创 2020-06-11 12:24:20 · 313 阅读 · 0 评论 -
DOM树:JavaScript是如何影响DOM树构建的?
1.HTML 解析器是 HTML 文档边加载边解析网络进程加载了多少数据,HTML 解析器便解析多少数据网络进程接收到响应头之后,会根据响应头中的 content-type 字段来判断文件的类型,比如 content-type 的值是“text/html”,那么浏览器就会判断这是一个 HTML 类型的文件,然后为该请求选择或者创建一个渲染进程。渲染进程准备好之后,网络进程和渲染进程之间会建立一个共享数据的管道,网络进程接收到数据后就往这个管道里面放,而渲染进程则从管道的另外一端不断地读取数据,并同时原创 2020-06-10 21:28:08 · 325 阅读 · 0 评论 -
js中数据的保存
1. JavaScript 的内存模型function foo(){ var a = "极客时间" var b = a var c = {name:"极客时间"} var d = c}foo()2.js为什么要用栈和堆内存空间两个表示数据?这是因为 JavaScript 引擎需要用栈来维护程序执行期间上下文的状态,如果栈空间大了话,所有的数据都存放在栈空间里面,那么会影响到上下文切换的效率,进而又影响到整个程序的执行效率。通常情况下,栈空间都不会设置太大,原创 2020-06-07 17:36:37 · 530 阅读 · 0 评论 -
javascript调用栈为什么栈会益处
1.代码会经过编译阶段,编译阶段会创建上下文环境变量,什么情况会创建上下文?全局代码,会被创建全局执行上下文,而且在整个页面的生存周期内,全局执行上下文只有一份。当调用一个函数的时候,函数体内的代码会被编译,并创建函数执行上下文,一般情况下,函数执行结束之后,创建的函数执行上下文会被销毁。当使用 eval 函数的时候,eval 的代码也会被编译,并创建执行上下文。var a = 2function add(){var b = 10return a+b}add()1.什么是 Ja原创 2020-06-05 17:02:57 · 144 阅读 · 0 评论 -
变量提升
1.JavaScript 中的声明和赋值2.JavaScript 代码的执行流程从概念的字面意义上来看,“变量提升”意味着变量和函数的声明会在物理层面移动到代码的最前面,正如我们所模拟的那样。但,这并不准确。实际上变量和函数声明在代码里的位置是不会改变的,而且是在编译阶段被 JavaScript 引擎放入内存中。输入一段代码,经过编译后,会生成两部分内容:执行上下文(Execution context)和可执行代码。VariableEnvironment:执行环境 mynam原创 2020-06-05 16:05:45 · 164 阅读 · 0 评论 -
HTTP请求流程
1.浏览器端发起HTTP请求流程用户在浏览器地址栏输入网址 http://baidu.com1.1 构建请求浏览器构建请求行的信息,构建好后,浏览器准备发送网络请求GET /index.html HTTP1.11.2 查找缓存发送网络请求之前,会先在浏览器缓存中查找是否有请求的文件缓存的好处:缓解服务器的压力实现资源的快速加载1.3 准备IP和端口HTTP的内容是在TCP/IP协议中传输数据阶段实现;如何获取IP和端口:DNS域名解析:百度的IP地址:119.75.2原创 2020-06-04 13:44:17 · 250 阅读 · 0 评论 -
Tcp/IP协议
1.如何保证页面文件能被完整的送达浏览器?互联网中的数据都是通过数据包 进行传输1.1 IP:把数据包送到目的主机数据包在互联网上运输就要符合网际协议(简称IP)标准,计算机的地址就是IP地址,访问任何网址,实际是你的计算机向另一台计算机请求信息,只要知道IP地址,就可以访问;主机A想要发送数据包给主机B,发送之前会将主机B的IP地址和A的IP地址,这些附加的信息被装进IP头数据结构里,包括源IP地址,目的IP地址,以及IP版本号,生存时间等;1.2 UDP:把数据包发送到应用程序IP是原创 2020-06-03 16:16:10 · 401 阅读 · 0 评论