关于异步引入的问题

现在两段代码,具体如下

  • 写法1 :异步引入demo.js
<!DOCTYPE html>
<html>
<head>
<script>
    document.write("<script src='demo.js'  type='text/javascript' " ></script>")
    <!--document.write("<link />") -->
</script>
</head>
<body>
</body>
</html>
  • 写法2: 同步引入demo.js
<!DOCTYPE html>
<html>
<head>
<script src="demo.js"  type="text/javascript"></script>
</head>
<body>
</body>
</html>

写法1在浏览器加载dom解析到““时,默认会开另一个线程去加载js文件。主线程继续解析html文件。这应该是异步加载。

写法2 在传统浏览器加载dom解析到““时,主线程回去加载js文件,等到加载完成时,继续解析html文件。现在的浏览器还是会和上面一样自动开线程去加载,但是这是浏览器自身的预加载,并不会出现bug

在正常情况下,网络状况良好时,写法1并不会有什么问题,还有加快网页的加载速度(现在应该没用了吧)。但是一段网络状况不好,比如网上低于5k时,副线程就会因为抢不到网络资源而被阻塞,这时就会导致页面样式错乱或者事件失效了。

其实这里面还有很多概念 orz

点击查看大佬解析--https://www.cnblogs.com/ziyunfei/p/5881426.html


以上,是我在实习时遇到的一个大坑。前人写的代码,是一个微信公众号,使用场景是医院,医院人多,有时网络差,然后医院提的bug,一开始以为是手机机型问题,头痛。

猜你喜欢

转载自www.cnblogs.com/duangL/p/11508368.html