持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第26天,点击查看活动详情
javascript、css、图片这些部署在服务器端的静态资源。通过在浏览器中输入url就能拿到请求,并且在浏览器中画出来。在开始工作的时候,这个地方让我困惑了很久。
就像我之前写过的文章中提到的那样,为什么在键盘上按下1、+、1,这几个按键,在显示器上就能出现这三个字符,并且最终不用算盘,也能得到结果2。
这样类似的疑问,从url到页面渲染出来的这一大堆东西,它究竟经历了什么?
其实很简单,这个中间环节就是像”Google V8“这样的浏览器背后的”引擎“。也就是说从部署在服务器上的javascript、css这些脚本和样式文件,到最终呈现在用户眼前的浏览器上的画面,这中间环节就是操作系统上的浏览器这一软件中内嵌的“Google V8”这样的浏览器引擎,将url转换成请求,并在操作系统上落地到内存中。
在对这个概念有基础认识的情况下,就能够对尤其是前端程序员在面对前端开发的过程中出现问题的时候有更高的视角去看待和处理问题。
比如:我们在工作中经常用到的闭包、和闭包存在的作用域如果存在疑惑,感到无法理解的情况下。将javascript这种高级语言转换成AST语法树,并继续下探的时候,就能像医生做手术一样,扒开组织结构一探究竟。
如果在我们脚本运行过程中排除了服务器因素,在加载过程中依然很慢的情况下,不了解浏览器原理就会对这种类似问题根本无法下手。
包括对于Node.js这种基于javascript写服务端应用的发展趋势,如果不了解,Node.js是基于Chrome的V8引擎实现的话,那即便是想破脑袋,也找不到问题的本质。