详解关于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的面向对象(二)
Nov 09 Javascript
jQuery 在光标定位的地方插入文字的插件
May 10 Javascript
jquery foreach使用示例
Sep 12 Javascript
使用javascript实现json数据以csv格式下载
Jan 09 Javascript
jquery中取消和绑定hover事件的实现代码
Jun 02 Javascript
JS打印组合功能
Aug 04 Javascript
Javascript数组循环遍历之forEach详解
Nov 07 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
Dec 22 Javascript
JS 调试中常见的报错问题解决方法
May 20 Javascript
vue 中滚动条始终定位在底部的方法
Sep 03 Javascript
JavaScript创建对象的四种常用模式实例分析
Jan 11 Javascript
layui 实现自动选择radio单选框(checked)的方法
Sep 03 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.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
python列表操作使用示例分享
2014/02/21 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
Python序列循环移位的3种方法推荐
2018/04/09 Python
python计算列表内各元素的个数实例
2018/06/29 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
中东地区为妈妈们提供一切的头号购物目的地:Sprii
2018/05/06 全球购物
生物制药毕业生自荐信
2013/10/16 职场文书
教育学习自我评价
2014/02/03 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
2014年标准化工作总结
2014/12/17 职场文书
立项申请报告范本
2015/05/15 职场文书
请客吃饭开场白
2015/06/01 职场文书
2016年党员承诺书范文
2016/03/24 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
MySQL详细讲解变量variables的用法
2022/06/21 MySQL