扫码关注官方订阅号
javascript高级程序设计讲到IE中的错误时提到操作中止(operation shorted)这个概念:
在修改尚未加载完成的页面会发生错误。
示例代码为:
当
欢迎选择我的课程,让我们一起见证您的进步~~
浏览器加载页面时,碰到 js 代码会进行加载和解析,这时候就会中止其他代码的解析和渲染。这就是为什么我们一般把 js 代码放在页面尾部的原因,不组织页面文档结构的加载,而且可以对所有的 DOM 元素进行操作。
上面代码中,在执行那一句 js 代码时,整个页面的 html 结构还没有加载完成,所以浏览器并不知道 body 的末尾位置,而 body 开头位置已经确定了,所以新 p 可以添加到开头而不能添加到结尾。
DOM文档加载的步骤1 解析HTML结构。2 加载外部脚本和样式表文件。3 解析并执行脚本代码。4 构造HTML DOM模型。//DOMContentLoaded5 加载图片等外部文件。6 页面加载完毕。//load
理论上是这样,但实际还要考虑文档内容的位置,由于是从上到下解析,遇到js会阻塞渲染进行js解析和执行。
你所说的问题,我猜测是因为执行时body的前部已经渲染,而尾部未渲染导致的,就是不知道往哪插入尾部。
由于现代浏览器对DOM操作的优化,我在chrome上已经测试不出错误,两种都可以,所以没必要太过在意这个问题了,只要记得顺序渲染,js放底部就行。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
浏览器加载页面时,碰到 js 代码会进行加载和解析,这时候就会中止其他代码的解析和渲染。这就是为什么我们一般把 js 代码放在页面尾部的原因,不组织页面文档结构的加载,而且可以对所有的 DOM 元素进行操作。
上面代码中,在执行那一句 js 代码时,整个页面的 html 结构还没有加载完成,所以浏览器并不知道 body 的末尾位置,而 body 开头位置已经确定了,所以新 p 可以添加到开头而不能添加到结尾。
DOM文档加载的步骤
1 解析HTML结构。
2 加载外部脚本和样式表文件。
3 解析并执行脚本代码。
4 构造HTML DOM模型。//DOMContentLoaded
5 加载图片等外部文件。
6 页面加载完毕。//load
理论上是这样,但实际还要考虑文档内容的位置,由于是从上到下解析,遇到js会阻塞渲染进行js解析和执行。
你所说的问题,我猜测是因为执行时body的前部已经渲染,而尾部未渲染导致的,就是不知道往哪插入尾部。
由于现代浏览器对DOM操作的优化,我在chrome上已经测试不出错误,两种都可以,所以没必要太过在意这个问题了,只要记得顺序渲染,js放底部就行。