详解关于html,css,js三者的加载顺序问题
<head lang="en">
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="css/*.css" rel="external nofollow" >lamde老师啥意思
<script src="js/*.js></script>
nor指令song</head>
DOM⽂档的加载顺序是由上⽽下的顺序加载;
1、DOM加载到link标签
css⽂件的加载是与DOM的加载并⾏的,也就是说,css在加载时Dom还在继续加载构建,⽽过程中遇到的css样式或者img,则会向服务器发送⼀个请求,待资源返回后,将其添加到dom中的相对应位置中;
2、DOM加载到script标签
由于js⽂件不会与DOM并⾏加载,因此需要等待js整个⽂件加载完之后才能继续DOM的加载,倘若js脚本⽂件过⼤,则可能导致浏览器页⾯显⽰滞后,出现“假死”状态,这种效应称之为“阻塞效应”;会导致出现⾮常不好的⽤户体验;安卓12全系统框架
⽽这个特性也是为什么在js⽂件中开头需要$(document).ready(function(){})或者(function(){})或者load,即是让DOM⽂档加载完成之后才执⾏js⽂件,这样才不会出现查不到DOM节点等问题;
mysql8027的安装教程js阻塞其他资源的加载的原因是:浏览器为了防⽌js修改DOM树,需要重新构建DOM树的情况出现;
3、解决⽅法
前提,js是外部脚本;
在script标签中添加 defer=“ture”,则会让js与DOM并⾏加载,待页⾯加载完成后再执⾏js⽂件,这样则不存在阻塞;
在scirpt标签中添加 async=“ture”,这个属性告诉浏览器该js⽂件是异步加载执⾏的,也就是不依赖于其他js和css,也就是说⽆法保证js⽂件的加载顺序,但是同样有与DOM并⾏加载的效果;html个人网页完整代码顺序
同时使⽤defer和async属性时,defer属性会失效;
可以将scirpt标签放在body标签之后,这样就不会出现加载的冲突了。
以上所述是⼩编给⼤家介绍的关于html,css,js三者的加载顺序问题详解整合,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论