在工程中添加了一些js文件,这些js文件都是一个立即执行的函数,想问下,在网页加载的时候,是把所有的js文件加载完 再执行js函数 还是在加载该js文件的时候就会执行?
在工程中添加了一些js文件,这些js文件都是一个立即执行的函数,想问下,在网页加载的时候,是把所有的js文件加载完 再执行js函数 还是在加载该js文件的时候就会执行?
<script type="text/javascript">
alert("这个是demo.html");
</script>
<script type="text/javascript" src="demo.js"></script>
<script type="text/javascript">
alert("这个是demo.html2");
</script>
demo.js:
alert("这个是demo.js");
这样的结构在打开页面时,是按照前后顺序对立即执行的函数进行执行!
因为js是页面内逐行去执行的,立即执行的函数在不受上下文影响的时候是按照先后顺序执行的!
ps:如有错误,请拍砖~
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答835 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
首先,这取决于你
script
标签的引入模式遇到一般的
script
标签,进行同步的加载和执行 —— 阻塞DOMTree
的加载,按照文档顺序,加载完毕后执行,直到脚本执行完毕,随后继续执行DOMTree
的加载遇到
async
的script
标签,进行异步并行的加载和执行 —— 不阻塞DOMTree
的加载,且一旦加载完毕就执行,无论script
标签的顺序,不允许使用document.write()
遇到
defer
的script
标签,script
立刻并行异步地下载,在DOMTREE
渲染完成之后,DOMContentLoaded
之前开始按照引入顺序依次执行。