异步加载和js时间线
同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止后续的解析,只有当当前加载完成,才能进行下一步操作。所以默认同步执行才是安全的。但这样如果js中有输出document内容、修改dom、重定向等行为,就会造成页面堵塞。所以一般建议把 < script > 标签放在< body>结尾处,这样尽可能减少页面阻塞。 异步在加载的过程中产生一个子进程去加载当前程序,自己去执行下一个程序 特点:单线程的异步就是多线程,只不过用异步的方式表现出来了 异步加载的三种方式 第一种方式: < script defer = "defer" > < / script > 第二种方式:(只能加载src中的脚本,不能把代写在script标签中) < script async = "async" src = "js/logo.js" > < / scipt > 注意:不要在这里写代码 第三种方式:除了以上两种方法,还有一种兼容自己封装的异步加载方式,即动态添加script标签也能实现异步加载。 < script > //异步的过程 var script = document . createElement ( "script" ) ; script . src = "js/logo.js" ; document . head . appendChild ( script ) ; < / script >