当前位置: 首页 > news >正文

MutationObserver与IntersectionObserver

MutationObserver

出现原因:当我们需要监听元素发生变化时,不借助使元素发生变化的业务动作的情况下,使用无污染方式监听非常困难,为了解决这个问题,MutationObserver诞生!

概述

可以用来监听DOM的任何变化,比如子元素、属性和文本内容的变化。

  • 概念上,它很接近事件,可以理解为DOM发生变动就会触发Mutation Observer 事件。
  • 和事件有本质不同:
    • 事件是同步触发(DOM的变动立刻会触发相应的事件)
    • Mutation Observer 则是异步触发(DOM发生变化并不会马上触发,而是等到当前所有DOM操作都结束才触发),执行时机类似宏任务
  • 设计目的:为了应对DOM变动频繁的特点。
    eg:如果不这么做,当文档中连续插入1000个<p>元素,就会连续触发1000个插入事件并执行每个事件的回调函数,这很有可能会造成浏览器的卡顿。
    而Mutation Observer完全不同,只在1000个段落都插入结束后才会触发,而且只触发一次。

小结:

  • Mutation Observer等待所有脚本任务完成后,才会触发。(宏任务)
  • 它把所有DOM变动记录封装成一个数组进行处理,而不是单独处理每个DOM变动。
  • 它既可以观察DOM的所有类型变动,也可以指定只观察某一类型的变动。
http://www.lryc.cn/news/15029.html

相关文章:

  • 【ESP 保姆级教程】玩转巴法云篇② ——MQTT设备云,MQTT协议下的数据通信
  • 植物大战 仿函数——C++
  • 【C语言】浮点型数据在内存中的存储
  • impala中的刷新元数据和刷新表
  • Vscode创建vue项目的详细步骤
  • 如何在面试中介绍自己的项目,才能让软件测试面试官无可挑剔,
  • 虹科方案|从 uCPE 到成熟的边缘计算平台
  • 计算机是怎么读懂C语言的?
  • hadoop入门介绍及各组件功能运行关系
  • (HP)新手引导使用react-shepherd
  • 数据结构:栈和队列(Leetcode20. 有效的括号+225. 用队列实现栈+232. 用栈实现队列)
  • 22.2.19周赛双周赛(贪心、记忆化搜索...)
  • 2023最新软件测试面试题(带答案)
  • 【C++】类型转换方法
  • 100亿级订单怎么调度,来一个大厂的极品方案
  • C++性能白皮书
  • 华为OD机试 - 黑板上色 | 机试题算法思路 【2023】
  • 如何在六秒内吸引观众的注意力
  • FreeRTOS与UCOSIII任务状态对比
  • 小程序 npm sill idealTree buildDeps 安装一直没反应
  • GPT系列详解:初代GPT
  • 为什么要使用数据库
  • 【单目标优化算法】海鸥优化算法(Matlab代码实现)
  • 筑基六层 —— 整型提升及实用调式技巧
  • 后端前端文件传输2中传出模式
  • 【ZOJ 1067】Color Me Less 题解(vector+开方)
  • 凌恩生物经典文章:孟德尔诞辰200周年,Nature Genetics礼献豌豆高质量精细图谱
  • 进程间通信(二)/共享内存
  • 电路模型和电路定律——“电路分析”
  • 软件工程 | 第一章:软件工程学概述