一、工作原理
JavaScript代码在浏览器中是如何执行的?
首先浏览器会下载JavaScript代码,但不是直接一下子全部下载,比如输入一个域名,经过dns服务器的解析之后,它会映射到一个IP地址。
然后服务器会返回一个html的网页,在此过程中,如果遇见link标签,会去下载css文件,如果遇见script标签,会去下载JavaScript文件。
二、浏览器内核
1、如何将浏览器中下载下来的html、css、js代码解析为一个在浏览器中前台展示的页面,这就是浏览器内核的工作。
2、不同的浏览器有不同的内核。
目前用的最多的是Blink,是WebKit的一个分支,Google开发,目前应用于Google Chrome、Edge、Opera等
3、浏览器内核其实指的就是浏览器的排版引擎(layout engine),也称为浏览器引擎(browser engine)、页面渲染引擎(rendering engine)或者样版引擎。
三、浏览器渲染过程
JavaScript是可以对dom进行 *** 作的,在这个执行过程中,html解析时候如果遇到了JavaScript标签,会停止解析html,而去加载和执行JavaScript代码,通过DOM指令来 *** 作DOM tree中的DOM元素。
首先,html文件是最先被下载下来的,然后经过浏览器内核中的HTML Parser的解析,将html代码生成一个DOM tree。一旦遇到JavaScript标签,就要停止html的解析,转而去 *** 作DOM Tree中的DOM元素,执行JS代码。
然后我们还会遇到很多的css的标签,经过CSS Parser去解析css规则,最终和DOMTree结合在一起,附加成为渲染树。在渲染的同时,还需要针对不同浏览器对页面进行重新布局。不同的浏览器的宽度不同,需要根据当前浏览器的状态重新布局,通过布局引擎生成最终的render tree。
最后再页面中对渲染树进行绘制和最终的展示。
这里涉及到一个问题就是:JavaScript代码由谁来执行?===>JavaScript引擎
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)