详解关于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 相关文章推荐
关于文本限制字数的js代码
Apr 02 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
Apr 04 Javascript
jQuery控制TR显示隐藏的几种方法
Jun 18 Javascript
点击表单提交时出现jQuery没有权限的解决方法
Jul 23 Javascript
JavaScript中Cookies的相关使用教程
Jun 04 Javascript
js倒计时抢购实例
Dec 20 Javascript
漂亮! js实现颜色渐变效果
Aug 12 Javascript
AngularJS读取JSON及XML文件的方法示例
May 25 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
Jan 08 Javascript
原生js代码能实现call和bind吗
Jul 31 Javascript
js实现数字从零慢慢增加到指定数字示例
Nov 07 Javascript
jQuery实现滑动星星评分效果(每日分享)
Nov 13 jQuery
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
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
表单提交前触发函数返回true表单才会提交
2014/03/11 Javascript
JavaScript中number转换成string介绍
2014/12/31 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
vue2.0 axios前后端数据处理实例代码
2017/06/30 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
大型车展策划方案
2014/02/01 职场文书
机电职业生涯规划书范文
2014/03/08 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
高中同学会活动方案
2014/08/14 职场文书
交通事故和解协议书
2014/09/25 职场文书
办理护照工作证明
2014/10/10 职场文书
确保工程质量承诺书
2015/04/29 职场文书
小区物业管理2015年度工作总结
2015/10/22 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
导游词之西安骊山
2019/12/03 职场文书