JS加载阻塞HTML的解析

  在浏览器解析传入的html代码的时候,当执行到script这个标签的时候,就会发送一个http请求,下载JS代码,并且这个时候html会被阻塞,下载之后,JS代码会被执行,这个时候html线程仍被阻塞,直到JS代码执行完毕才会继续执行html代码。(ps:因为我们在解析js的时候,会产生对于html的DOM产生影响的,可能会有 document.write. 这意味着,在当前 JS 加载和执行完成前,后续所有资源的下载有可能是没必要的。这是 JS阻塞后续资源下载的根本原因。)

  这个时候我们有三种解决方式:

  1.将js代码放在最后;

  2.在script标签中添加defer;

  3.在script标签中添加async;

  他们的区别看下图:

 

posted @ 2021-04-13 17:08  coderLsq  阅读(872)  评论(0)    收藏  举报