详解关于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帮助之CSS尺寸(五)outerHeight、outerWidth
Nov 14 Javascript
jQuery 打造动态下滑菜单实现说明
Apr 15 Javascript
Jquery 扩展方法
May 06 Javascript
formValidator3.3的ajaxValidator一些异常分析
Jul 12 Javascript
JavaScript实现图片自动加载的瀑布流效果
Apr 11 Javascript
详解Bootstrap的iCheck插件checkbox和radio
Aug 24 Javascript
原生js实现简单的链式操作
Jul 04 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
Jan 03 Javascript
微信小程序中换行空格(多个空格)写法详解
Jul 10 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
Dec 30 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
Jul 22 Javascript
Javascript如何实现双指控制图片功能
Feb 25 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
Adodb的十个实例(清晰版)
2006/12/31 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
PHP strtok()函数的优点分析
2010/03/02 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
浅谈php冒泡排序
2014/12/30 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
简单实现JavaScript图片切换效果
2016/11/28 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
基于Django用户认证系统详解
2018/02/21 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
浅析Python __name__ 是什么
2020/07/07 Python
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
旅行社各个岗位职责
2014/03/15 职场文书
2015年会计工作总结范文
2015/05/26 职场文书
财产分割协议书
2016/03/22 职场文书
Django中的JWT身份验证的实现
2021/05/07 Python
P站美图推荐——变身女主角特辑
2022/03/20 日漫