页面元素

<body>
<div></div>
<div></div>
<div></div>
<div></div>
</body>

onload和DOMContentLoaded对于DOM事件加载的区别

onload事件会等到DOM元素加载完毕, 并且还会等到资源也加载完毕才会执行
DOMContentLoaded事件只会等到DOM元素加载完毕就会执行回调

window.onload = function (ev) {var res = document.querySelectorAll("div");console.log(res);console.log("onload");
}

document.addEventListener("DOMContentLoaded", function () {var res = document.querySelectorAll("div");console.log(res);console.log("DOMContentLoaded");
});

使用attachEvent()

使用IE8进行

document.readyState属性有如下的状态
uninitialized - 还未开始载入
loading - 载入中
interactive - 已加载,文档与用户可以开始交互
complete - 载入完成

onreadystatechange事件就是专门用于监听document.readyState属性的改变的

document.attachEvent("onreadystatechange", function () {if(document.readyState == "complete"){console.log("onreadystatechange");});

document.readyState

一个document 的 Document.readyState 属性描述了文档的加载状态。

当该属性值发生变化时,会在document 对象上触发readystatechange事件。

一个文档的 readyState 可以是以下之一:

loading / 正在加载

document 仍在加载。

interactive / 可交互

文档已被解析,"正在加载"状态结束,但是诸如图像,样式表和框架之类的子资源仍在加载。

complete / 完成

文档和所有子资源已完成加载。表示 load状态的事件即将被触发。

当这个属性的值变化时,document 对象上的 readystatechange事件将被触发。

语法

let string = document.readyState;// "complete"

例子

不同的准备状态

switch (document.readyState) {case "loading":// 表示文档还在加载中,即处于“正在加载”状态。break;case "interactive":// 文档已经结束了“正在加载”状态,DOM元素可以被访问。// 但是像图像,样式表和框架等资源依然还在加载。var span = document.createElement("span");span.textContent = "A <span> element.";document.body.appendChild(span);break;case "complete":// 页面所有内容都已被完全加载.let CSS_rule = document.styleSheets[0].cssRules[0].cssText;console.log(`The first CSS rule is: ${CSS_rule }`);break;
}
// 模拟 DOMContentLoaded/ jquery ready
document.onreadystatechange = function () {if (document.readyState === "interactive") {initApplication();}
}
// 模拟 load 事件
document.onreadystatechange = function () {if (document.readyState === "complete") {initApplication();}
}

资料来源:document.readyState

Mr.J-- jQuery学习笔记(二十五)--监听DOM加载相关推荐

  1. JVM 学习笔记二十五、JVM监控及诊断工具-命令行篇

    二十五.JVM监控及诊断工具-命令行篇 1.概述 性能诊断是软件工程师在日常工作中经常面对和解决的问题,在用户体验至上的今天,解决好应用软件的性能问题能带来非常大的收益. Java作为最流行的编程语言 ...

  2. Java学习笔记二十五:Java面向对象的三大特性之多态

    Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...

  3. angular学习笔记(二十五)-$http(3)-转换请求和响应格式

    本篇主要讲解$http(config)的config中的tranformRequest项和transformResponse项 1. transformRequest: $http({transfor ...

  4. java沙盒模式_JavaScript学习笔记(二十五) 沙箱模式

    沙箱模式(Sandbox Pattern) 沙箱模式可以避免命名空间的一些缺点(namespacing pattern),比如: 依赖一个唯一全局的变量作为程序的全局符号.在命名空间模式中,没有办法存 ...

  5. Mr.J-- jQuery学习笔记(二十八)--DOM操作方法(添加方法总结)

    Table of Contents appendTo appendTo(source, target) 源代码 append prependTo ​ ​ ​ ​ prependTo源码 prepend ...

  6. JavaScript学习笔记(十五)

    JavaScript学习笔记(十五) 事件 事件是DOM(文档对象模型)的一部分.事件流就是事件发生顺序,这是IE和其他浏览器在事件支持上的主要差别. 一.事件流 1.冒泡型事件 IE上的解决方案就是 ...

  7. OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D()

    OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D() 一个任意的仿射变换都能表示为乘以一个矩阵(线性变换)接着再加上一个向量(平移)的形式. ...

  8. 学习笔记(十五)——镜像的知识点与注意事项

    学习笔记(十五)--镜像的知识点与注意事项 一.基础知识 1.SQL Server镜像只有两种模式:高安全模式和高性能模式.两种模式的主要区别在于在事务提交后的操作. 在高性能模式下,主体服务器不需要 ...

  9. MATLAB学习笔记(十五)

    MATLAB学习笔记(十五) 一.非线性方程求解与函数极值计算 1.1 非线性方程数值求解 1.2 函数极值的计算 1.2.1 无约束最优化问题 1.2.2 有约束最优化问题 一.非线性方程求解与函数 ...

最新文章

  1. 僵尸网络病毒之BotNet扫盲、预防及清除
  2. java dh密钥交换_java-信息安全(八)-迪菲-赫尔曼(DH)密钥交换
  3. POJ3608(旋转卡壳--求两凸包的最近点对距离)
  4. ajxs跨域 php_php设置header头允许ajax跨域请求
  5. 小程序 input 换行_小程序 input双向数据绑定
  6. 网络编程:TCP实现文件上传
  7. 除非 Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站。IIS 7...
  8. java中equals和 == 的区别
  9. Linux内存管理之基本概念介绍(一)
  10. Robotframework--随机选取下拉框的字段值进行搜索
  11. codevs1026 逃跑的拉尔夫
  12. 鸡兔同笼35个头94只脚用 鸡多少只?兔有多少只? Js解答
  13. 计算机开机了进入不到桌面,电脑开机后进不了桌面,小编教你电脑开机后无法进入桌面怎么办...
  14. python格式jpg转换png(批量处理,深度24,尺寸不变)
  15. 双语的c语言教程,C语言程序设计课程双语教学探索与实践
  16. 验证(Verification)与确认(Validation)的差别
  17. gpib通信协议_【成功案例】生命科学仪器测试设备公司借助凌华GPIB通信卡 突破旧式仪器与系统兼容整合管理的困境...
  18. IT男的情商修炼,看电视剧也可以提升情商
  19. Java语言进阶-List、Set、数据结构、Collections
  20. 【前端图片转化】 base64格式 转为 File文件类型

热门文章

  1. 热传递物理模型matlab,简单传热学计算机分析MatlabPDE二维不稳态焊接热传导求解.PPT...
  2. php msi安装教程,如何判断msi安装包程序是否安装及安装路径
  3. 消费级GPU、速度提升3000倍,微软FastNeRF实现200FPS
  4. AI前沿 | Gartner曲线5大趋势:传感和移动、超能人类、自动机器人、高级人工智能…...
  5. 数据科学与计算机学院张治国,张治国(河海大学机电工程学院副教授)_百度百科...
  6. HALCON学习之旅(四)
  7. java中局部内部类_Java内部类详解--成员内部类,局部内部类,匿名内部类,静态内部类...
  8. CSPNet论文笔记
  9. python输入多个数字 找出只出现一个的数字_在python数组中找到接近给定数字的多个值...
  10. bing浏览器_微软全新Edge浏览器正式发布 支持macOS和iOS