详解关于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 相关文章推荐
jQuery点击tr实现checkbox选中的方法
Mar 19 Javascript
node.js中的fs.readlink方法使用说明
Dec 17 Javascript
JavaScript中使用自然对数ln的方法
Jun 14 Javascript
jQuery实现查找链接文字替换属性的方法
Jun 27 Javascript
详解JS几种变量交换方式以及性能分析对比
Nov 25 Javascript
过期软件破解办法实例详解
Jan 04 Javascript
p5.js入门教程之图片加载
Mar 20 Javascript
解决vue router组件状态刷新消失的问题
Aug 01 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
Oct 09 Javascript
微信小程序中显示倒计时代码实例
May 09 Javascript
浅谈如何优雅处理JavaScript异步错误
Nov 12 Javascript
vue-router为激活的路由设置样式操作
Jul 18 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保留两位小数并且四舍五入及不四舍五入的方法
2013/09/22 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
tp5修改(实现即点即改)
2019/10/18 PHP
基于thinkphp6.0的success、error实现方法
2019/11/05 PHP
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
python单例模式实例分析
2015/04/08 Python
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
详解Python编程中包的概念与管理
2015/10/16 Python
Python 爬虫多线程详解及实例代码
2016/10/08 Python
python中的闭包函数
2018/02/09 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
html5画布旋转效果示例
2014/01/27 HTML / CSS
设计模式的基本要素是什么
2014/04/21 面试题
中学家长会邀请函
2014/02/03 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
2014年财政所工作总结
2014/11/22 职场文书
倡议书的格式写法
2015/04/28 职场文书
大学推普周活动总结
2015/05/07 职场文书
导师鉴定意见
2015/06/05 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
Python内置数据结构列表与元组示例详解
2021/08/04 Python