JS的异步与加载时间线
一、JS同步和异步 1、同步模式:又称阻塞模式,会阻止浏览器的后续处理,停止了后续的解析,因此停止了后续文件的加载、渲染、代码执行(即如果加载到js文件要等到文件加载完成后执行,才能继续执行后面的代码)。所以默认同步执行才是安全的。但这样如果js中有输出document内容、修改dom、重定向等行为,就会造成页面堵塞。所以一般建议把 < script > 标签放在< body>结尾处,这样尽可能减少页面阻塞。 2、异步模式:按需加载,用到的时候再加载,不用到就不需要加载,例如回调函数。(异步在加载的过程中产生一个子进程去加载当前程序,自己去执行下一个程序) 特点:单线程的异步就是多线程,只不过用异步的方式表现出来了 3、同步和异步的区别:JavaScript 为单线程,所以同步为单线程,异步为模拟多线程;同步和异步的区别在于在执行程序的顺序不同。 4、异步 三种方式 (1)defer在DOM文档解析完成之后才执行js文件,IE独有 在IE低版本中 defer 可以让script请求的文件异步加载 <script defer> console. log ( "hello" ) ; </script> (2)async 针对其他浏览器,加载完就执行,只能加载外部脚本 不能把js代码写在js文件里 <script src = "load.js" async> </script> ``