首页 > 网页在加载js文件的时候,遇到立即执行函数会立即执行吗

网页在加载js文件的时候,遇到立即执行函数会立即执行吗

在工程中添加了一些js文件,这些js文件都是一个立即执行的函数,想问下,在网页加载的时候,是把所有的js文件加载完 再执行js函数 还是在加载该js文件的时候就会执行?



好像script标签有个属性可以改变运行的先后(html5),你去搜搜


首先,这取决于你script标签的引入模式

<script src="script.js"></script>

遇到一般的script标签,进行同步的加载和执行 —— 阻塞DOMTree的加载,按照文档顺序,加载完毕后执行,直到脚本执行完毕,随后继续执行DOMTree的加载

<script async src="script.js"></script>

遇到asyncscript标签,进行异步并行的加载和执行 —— 不阻塞DOMTree的加载,且一旦加载完毕就执行,无论script标签的顺序,不允许使用document.write()

<script defer src="script.js"></script>

遇到deferscript标签,script立刻并行异步地下载,在DOMTREE渲染完成之后,DOMContentLoaded之前开始按照引入顺序依次执行。


加载js文件的时候就会去执行,举个例子:如果你的js代码中有用到jquery,那么jquery.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:如有错误,请拍砖~

【热门文章】
【热门文章】