浏览器加载JS文件的先后顺序同具体的解析和执行有什么关系?
肯定浏览器是按照从前之后,由上到下的顺序解析页面,因此正常情况下,JavaScript脚本的执行顺序也是从上到下的,即页面上先出现的代码或先被引入的代码总是被先执行,即使是允许并行下载JavaScript文件时也是如此。
同时,请注意, 在HTML中加入JavaScript代码有多种方式,概括如下(不考虑requirejs或seajs等模块加载器):
(1)通过document.write方法向页面写入<script>标签或代码
(2)通过动态脚本技术,即利用DOM接口创建<script>元素,并设置元素的src,然后再将元素添加进DOM中。
(3)通过Ajax获取脚本内容,然后再创建<script>元素,并设置元素的text,再将元素添加进DOM中。
(4)正常引入:即在页面中通过<script>标签引入脚本代码或者引入外部脚本
(5)直接把JavaScript代码写在元素的事件处理程序中或直接作为URL的主体
有一个很典型的例子:
<script>
alert(document.getElementById('myid'));
</script>
<div id="myid" />
<script>
alert(document.getElementById('myid'));
</script>
第一个alert显示NULL,因为HTML还未解析,元素不存在。
第二个alert显示[object HTMLDivElement]
欢迎讨论。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有