MutationObserver 我们知道,他的callback会被加入到微任务队列中,后面在逛帖子的时候又遇到了 IntersectionObserver和ResizeObserver的callback ,我在想他们俩得callback是什么类型,然后去MDN上面看文档,发现MutationObserverMDN上面也没有明确说明(也可能是我看漏了)。IntersectionObserver和ResizeObserver也没有说明,所以才有了这个问题!
MutationObserver 我们知道,他的callback会被加入到微任务队列中,后面在逛帖子的时候又遇到了 IntersectionObserver和ResizeObserver的callback ,我在想他们俩得callback是什么类型,然后去MDN上面看文档,发现MutationObserverMDN上面也没有明确说明(也可能是我看漏了)。IntersectionObserver和ResizeObserver也没有说明,所以才有了这个问题!
关于MutationObserver、IntersectionObserver和ResizeObserver的callback类型,MDN(Mozilla Developer Network)上确实没有明确说明。不过,一般来说,这些观察器的callback通常具有以下结构:
function callback(mutationsList, observer) {
// 处理观察到的变化
}
其中,mutationsList
是一个包含所有已观察到的变化的列表,而observer
是观察器对象本身。
对于IntersectionObserver和ResizeObserver,它们的callback通常具有以下结构:
function callback(entries, observer) {
// 处理交集或尺寸变化
}
其中,entries
是一个包含所有观察目标的交集或尺寸变化的列表,而observer
是观察器对象本身。
需要注意的是,具体的callback函数参数可能会有所不同,具体取决于你使用的库或框架。因此,最好查阅你所使用的库或框架的文档以获取更准确的信息。
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答4.9k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
有啊,在各自的构造函数小节都有介绍:
补充
已知条件:
微任务:
Promise
、MutationObserver
宏任务:
setTimeout
判断宏任务或微任务的方案如下(测试环境为 谷歌浏览器 ,不同浏览器可能有不同实现)
首先是
MutationObserver
输出结果为:
可以确认为微任务
再来看
IntersectionObserver
:输出为:
显然,
Intersection
也是微任务最后是
ResizeObserver
:结果为:
所以
ResizeObserver
也是微任务