【发布时间】:2013-06-12 23:39:36
【问题描述】:
有两个与浏览器的网页初始化有关的事件。
- DOMContentReady(document object) : 解析 HTML 文档并构建 DOM 树
- load(window object) : HTML 文档的所有元素都被渲染(显示)
据我了解,在 DOM 准备好(触发 DOMContentReady)之前,浏览器无法开始渲染页面,并且默认情况下,脚本标记会阻止任何其他浏览器进程,直到脚本文件被下载并执行。
那为什么把script标签放在body标签的末尾好呢?在我看来,当浏览器在页面的任何位置遇到脚本标签时都会被阻止,因此 DOMContentReady 不会被触发,直到脚本标签被下载并执行。结果,无论脚本标签的位置如何,在脚本完全处理之前,用户都看不到除了白色空白页之外的任何内容。
【问题讨论】:
-
如果您曾经有过使用慢得痛苦的互联网的乐趣,您会经常看到部分呈现的页面。浏览器(至少 Chrome 和 Firefox)会在构建 DOM 时重新渲染页面,以使其看起来加载速度更快。
标签: javascript dom browser