详解关于html,css,js三者的加载顺序问题

 更新时间:2019年04月10日 15:11:17   作者:落落月  
这篇文章主要介绍了关于html,css,js三者的加载顺序问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
<head lang="en">
  <meta charset="utf-8">
  <title></title>
  <link rel="stylesheet" href="css/*.css" rel="external nofollow" >
  <script src="js/*.js></script>
</head>

DOM文档的加载顺序是由上而下的顺序加载;

1、DOM加载到link标签

css文件的加载是与DOM的加载并行的,也就是说,css在加载时Dom还在继续加载构建,而过程中遇到的css样式或者img,则会向服务器发送一个请求,待资源返回后,将其添加到dom中的相对应位置中;

2、DOM加载到script标签

由于js文件不会与DOM并行加载,因此需要等待js整个文件加载完之后才能继续DOM的加载,倘若js脚本文件过大,则可能导致浏览器页面显示滞后,出现“假死”状态,这种效应称之为“阻塞效应”;会导致出现非常不好的用户体验;

而这个特性也是为什么在js文件中开头需要$(document).ready(function(){})或者(function(){})或者window.onload,即是让DOM文档加载完成之后才执行js文件,这样才不会出现查找不到DOM节点等问题;

js阻塞其他资源的加载的原因是:浏览器为了防止js修改DOM树,需要重新构建DOM树的情况出现;

3、解决方法

前提,js是外部脚本;

在script标签中添加 defer=“ture”,则会让js与DOM并行加载,待页面加载完成后再执行js文件,这样则不存在阻塞;

在scirpt标签中添加 async=“ture”,这个属性告诉浏览器该js文件是异步加载执行的,也就是不依赖于其他js和css,也就是说无法保证js文件的加载顺序,但是同样有与DOM并行加载的效果;

同时使用defer和async属性时,defer属性会失效;

可以将scirpt标签放在body标签之后,这样就不会出现加载的冲突了。

以上所述是小编给大家介绍的关于html,css,js三者的加载顺序问题详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 我所理解的JavaScript中的this指向

    我所理解的JavaScript中的this指向

    这篇文章主要介绍了JavaScript中this指向的相关资料,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下
    2020-09-09
  • js中常用的4种模糊查询详解(includes()、indexOf()、search()、match())

    js中常用的4种模糊查询详解(includes()、indexOf()、search()、match())

    这篇文章主要给大家介绍了关于js中常用的4种模糊查询(includes()、indexOf()、search()、match())的相关资料,搜索可以使我们更快的找到某一个关键词或者某一个商品,所以模糊查询和下拉匹配也成了前端必备的一个小技能,需要的朋友可以参考下
    2023-11-11
  • Whatever:hover 无需javascript让IE支持丰富伪类

    Whatever:hover 无需javascript让IE支持丰富伪类

    绝大部分现代浏览器支持 css 中的 :hover 伪类选择器,可以用于所有 html 元素。
    2010-06-06
  • Threejs与Tween.js结合创建动画的详细图文教程

    Threejs与Tween.js结合创建动画的详细图文教程

    three.js和tween.js可以一起使用,实现复杂的动画效果,包括飞线动画,这篇文章主要给大家介绍了关于Threejs与Tween.js结合创建动画的相关资料,需要的朋友可以参考下
    2024-01-01
  • Javascript中匿名函数的调用与写法实例详解(多种)

    Javascript中匿名函数的调用与写法实例详解(多种)

    js中定义函数的方式有很多种,函数直接量就是其中一种,下面通过本文给大家介绍匿名函数是如何调用的及匿名函数的n中写法,对js匿名函数调用,js匿名函数写法相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • IE与firefox下Dhtml的一些区别小结

    IE与firefox下Dhtml的一些区别小结

    IE与Mozilla下Dhtml的一些区别小结
    2009-12-12
  • JS实现进度条顺滑版详细方案

    JS实现进度条顺滑版详细方案

    最近在小程序里,做了一个类似微博刷视频的需求,其中有一部分功能需要实现自定义进度条,在做完第一版之后发现进度条不顺滑,而后想查查网上看有没有什么好的方案,但最终没找到合适的。下面给大家分享JS进度条顺滑版实现代码,需要的朋友参考下吧
    2021-08-08
  • JavaScript 数组的深度复制解析

    JavaScript 数组的深度复制解析

    一般情况下,使用 “=” 可以实现赋值。但对于数组、对象、函数等这些引用类型的数据,这个符号就不好使了。这篇文章主要介绍了JavaScript 数组的深度复制解析的相关资料,需要的朋友可以参考下
    2016-11-11
  • input标签内容改变的触发事件介绍

    input标签内容改变的触发事件介绍

    onchange事件在内容改变(两次内容有可能相等)且失去焦点时触发;onpropertychange事件是实时触发,每增加或删除一个字符就会触发
    2014-06-06
  • JavaScript原生数组函数实例汇总

    JavaScript原生数组函数实例汇总

    这篇文章主要介绍了JavaScript原生数组函数实例汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10

最新评论