详解关于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 相关文章推荐
一个判断email合法性的函数[非正则]
Dec 09 Javascript
jquery photoFrame 图片边框美化显示插件
Jun 28 Javascript
表格单元格交错着色实现思路及代码
Apr 01 Javascript
js如何设置在iframe框架中指定div不显示
Dec 04 Javascript
jQuery源码解读之removeClass()方法分析
Feb 20 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
Mar 25 Javascript
JavaScript必知必会(三) String .的方法来自何方
Jun 08 Javascript
JavaScript实现图片瀑布流和底部刷新
Jan 02 Javascript
vue项目中使用fetch的实现方法
Apr 25 Javascript
Koa从零搭建到Api实现项目的搭建方法
Jul 30 Javascript
vue element-ul实现展开和收起功能的实例代码
Nov 25 Vue.js
Vue-Element-Admin集成自己的接口实现登录跳转
Jun 23 Vue.js
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 读取和修改大文件的某行内容的代码
2009/10/30 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
php判断linux下程序问题实例
2015/07/09 PHP
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
js弹出窗口返回值的简单实例
2016/05/28 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
浅析python递归函数和河内塔问题
2017/04/18 Python
python绘制立方体的方法
2018/07/02 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
Python函数中的可变长参数详解
2019/09/12 Python
Python测试线程应用程序过程解析
2019/12/31 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
全世界最美丽的四星和五星级酒店预订:Prestigia.com
2017/11/15 全球购物
大学生求职自荐信
2013/12/12 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
诚信贷款承诺书
2014/05/30 职场文书
美丽人生观后感
2015/06/03 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers