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


Posted in Javascript onApril 10, 2019
<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 相关文章推荐
javascript之锁定表格栏位
Jun 29 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
Mar 24 Javascript
详解js闭包
Sep 02 Javascript
jQuery判断指定id的对象是否存在的方法
May 22 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
Nov 24 Javascript
Backbone.js框架中简单的View视图编写学习笔记
Feb 14 Javascript
WEB前端实现裁剪上传图片功能
Oct 17 Javascript
Bootstrap表单控件使用方法详解
Jan 11 Javascript
Vue2学习笔记之请求数据交互vue-resource
Feb 23 Javascript
vue-cli+webpack项目 修改项目名称的方法
Feb 28 Javascript
jquery html添加元素/删除元素操作实例详解
May 20 jQuery
elementUI同一页面展示多个Dialog的实现
Nov 19 Javascript
angular2 NgModel模块的具体使用方法
Apr 10 #Javascript
bootstrap tooltips在 angularJS中的使用方法
Apr 10 #Javascript
javascript判断一个变量是数组还是对象
Apr 10 #Javascript
Angular CLI 使用教程指南参考小结
Apr 10 #Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
Apr 10 #Javascript
element-ui多文件上传的实现示例
Apr 10 #Javascript
基于mpvue搭建微信小程序项目框架的教程详解
Apr 10 #Javascript
You might like
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
PHP7引入的&quot;??&quot;和&quot;?:&quot;的区别讲解
2019/04/08 PHP
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
jquery实现用户登陆界面(示例讲解)
2017/09/06 jQuery
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
vue-cli项目修改文件热重载失效的解决方法
2018/09/19 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
js实现蒙版效果
2020/01/11 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
python多进程中的内存复制(实例讲解)
2018/01/05 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
总务岗位职责
2013/11/19 职场文书
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
检讨书范文2000字
2015/01/28 职场文书
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python