关于domready的小问题

来源:3-3 domReady的实现策略

键盘f11

2020-05-25 10:08:01

http://img.mukewang.com/climg/5ecb26670919e65404180052.jpg

http://img.mukewang.com/climg/5ecb266709a1261105130299.jpg

http://img.mukewang.com/climg/5ecb2667091dd4c502660419.jpg

您好,老师,关于domready我有几个问题想要咨询一下,为了提高用户体验,相比于window.onload(需要等到至所有的html文件,图片,文档都加载完以后,才会绑定事件,时间上比较的慢),那domready是不是一种机制呢,而不是一种方法?正如视频中老师举得一个例子,使用了JQuery.ready.promise,其实是用这个函数去调用domready机制?根据domready的机制原理,是在解析完html文件后,形成dom树的时候,就开始解析js文件。那是否可以理解为,js里面的事件可以通过一个又一个的节点,分批次的去实现动态效果,而这个一个又一个的节点需要用要使用到domready机制呢?相当于异步执行?

目前的疑惑是没有一个很好的概念,window.onload加载慢,会有多慢,是否涉及到环境的搭建?dom节点的优化,如何去优化,怎么去分布每个节点的加载时间?

写回答

1回答

好帮手慕粉

2020-05-25

同学你好,关于同学的问题回答如下:

1、DomReady是一个加载状态,同学也可将其说成是一种渲染机制。

2、在JQuery.ready.promise中,是对DomReady的状态进行判断的(是否渲染完毕):

http://img.mukewang.com/climg/5ecb5e52094b07b412830633.jpg

3、不管使用的是什么,代码都是自上而下执行的。

4、window.onload是在涉及到大量图片的时候,会慢很多。

6、DomReady是DOM结构绘制完毕后就执行,不必等到图片加载完毕。如果图片加载的慢也没有关系,因为页面的结构加载完毕之后就可以执行js代码,整个页面的逻辑就能正常执行了。在一定程度上比较快速渲染页面。我们只需知道,我们设置了这个函数以后,就可以实现这个功能即可,至于浏览器怎么去优化怎么分配,这不是我们操心的事,是浏览器的运行机制所决定的。

7、domReady就是监听页面上所有的html都是否都转换为节点,转换完成,我们就可以进行相应的操作,而无需等待图片等资源的加载了。这个功能已经封装好了,同学可以先不去深究里面的具体实现,直接拿过来调用即可。同学对 domReady.js简单了解一下即可,不需要深入研究,先用老师的写好的就行。后期学了jQuery,使用$(document).ready(function(){}) 就可以。

祝学习愉快~

0

0 学习 · 40143 问题

查看课程