什么是domReady
html告诉我们页面中有什么内容,而行为交互是需要dom节点来参与,html标签需要通过浏览器解析成为dom节点,当html标签全部解析为dom节点之后dom树构建完毕,即domReady。
下图中在div元素节点构建之前就对该节点产生行为交互,document.getElementById()无法找到该dom节点,所以会报错。


浏览器的渲染流程

2.解析各部分的CSS信息(外部CSS文件、style标签内的样式)
3.决定dom节点在页面中的具体坐标
4.为dom节点添加样式信息
domReady的实现策略
放在body标签的最后

window.onload事件
window.onload是当dom节点绘制完毕并且浏览器资源加载完毕之后会触发的事件。

JQ中的ready方法
JQ的目标是在页面的dom树构建完成后不等待其他资源的加载就触发,通过以下方法完成:
1.如果支持DOMContentLoaded就使用这个事件
2.不支持的(IE)通过document.documentElement.doScroll('left')判断dom树是否构建完毕

document.onreadystatechange监听加载状态,如果加载完成就可以直接执行回调函数;如果未完成,通过document.documentElement.doScroll('left')反复判断是否构建完毕;在现代浏览器中通过添加事件监听来监听DOMContentLoaded事件,事件触发后执行回调。
这是一名小白的学习笔记,如果有错误请指正,感谢大家!!