Arx*_*iss 0 html javascript jquery
我有一个注册页面,有些JS仅用于此页面,而另一个JS用于3个不同的页面.所以,这个页面的JS只有我写的内部标签,以及第二个输入和外部文件,它包含在body标签中
代码示例
HTML
...
<script type="text/javascript" scr="src.js"></script>
<script type="text/javascript">
//some JS and jQuery code
</script>
Run Code Online (Sandbox Code Playgroud)
浏览器以何种顺序加载网页?如果它正在读取HTML,当它找到第一个脚本时它是否加载此脚本,等待它完全加载然后继续读取HTML?
因为在内部JS中我使用了一些来自外部脚本的函数,比如jQuery $(document).ready()函数,我想知道,如果在DOM准备就绪时触发了这个事件,那么这意味着该函数是外部JavaScript ?
当读取外部标记(具有src属性的标记)时,现代浏览器将异步下载此脚本,即,在下载脚本时继续读取/解析HTML.
但是,浏览器会阻止所有后续脚本的执行(注意不下载),想到脚本执行队列,所有脚本都会逐个排队并执行,但下载是异步的.
更早的浏览器(主要是IE6和IE7)是不同的,它们会阻止HTML解析过程,等待脚本下载和执行,并继续解析剩余的HTML.
总结:下载和执行是脚本的不同阶段,现代浏览器块执行阶段,下载可以是异步和并行以提高性能,早期的浏览器阻止下载阶段,这使得页面解析效率降低.