icon-cookie
The website uses cookies to optimize your user experience. Using this website grants us the permission to collect certain information essential to the provision of our services to you, but you may change the cookie settings within your browser any time you wish. Learn more
I agree
Summary | 16 Annotations
为了防止攻击者篡改外部脚本,script标签允许设置一个integrity属性,写入该外部脚本的 Hash 签名,用来验证脚本的一致性
2020/06/06 07:51
加载外部脚本时,浏览器会暂停页面渲染,等待脚本下载并执行完成后,再继续渲染
2020/06/06 07:53
如果外部脚本加载时间很长(一直无法完成下载),那么浏览器就会一直等待脚本下载完成,造成网页长时间失去响应,浏览器就会呈现“假死”状态,这被称为“阻塞效应”
2020/06/06 07:53
较好的做法是将<script>标签都放在页面底部,而不是头部
2020/06/06 07:53
DOMContentLoaded事件
2020/06/06 07:54
解析和执行 CSS,也会产生阻塞
2020/06/06 07:55
Chrome:Blink 引擎
2020/06/06 07:55
HTML 代码解析为 DOM
2020/06/06 07:55
CSS 代码解析为 CSSOM
2020/06/06 07:55
将 DOM 和 CSSOM 合成一棵渲染树
2020/06/06 07:56
渲染树的布局(layout)
2020/06/06 07:56
渲染树绘制到屏幕
2020/06/06 07:56
JavaScript 是一种解释型语言,也就是说,它不需要编译,由解释器实时运行
2020/06/06 07:56
浏览器都将 JavaScript 进行一定程度的编译,生成类似字节码(bytecode)的中间代码,以提高运行速度
2020/06/06 07:56
现代浏览器改为采用“即时编译”(Just In Time compiler,缩写 JIT),即字节码只在运行时编译,用到哪一行就编译哪一行,并且把编译结果缓存(inline cache)
2020/06/06 07:57
V8 (Chrome, Chromium)
2020/06/06 07:57