首页 > 其他分享 >js 浏览器的5种observer 第一种 MutationObserver 详解及使用方法

js 浏览器的5种observer 第一种 MutationObserver 详解及使用方法

时间:2023-09-12 18:44:36浏览次数:51  
标签:浏览器 observer DOM 变化 js MutationObserver true

 

MutationObserver 提供了监听 DOM 树变化的能力。从简单的 UI 变更追踪到复杂的 SPA 页面变化都有涉及。 可以追踪 DOM 树的变化,包括节点的增加、删除、属性的修改等。它是异步的,这意味着它会将所有的 DOM 变化集合起来一次性报告,而不是在每一次变化后立刻报告。

兼容性

MutationObserver在现代浏览器中得到了很好的支持。它在 Chrome 26+、Firefox 14+、IE 11+、Opera 15+ 和 Safari 6.1+ 中可用。

为了在旧版本的浏览器中实现相似的功能,开发者可能需要使用轮询技巧或者使用第三方库。

查看完整的兼容性表格

如何使用

const observer = new MutationObserver((mutations) => {
    mutations.forEach((mutation) => {
        console.log(mutation.type);
    });
});

// 配置观察器选项
const config = {
    attributes: true,
    childList: true,
    characterData: true,
    subtree: true
};

// 传入目标节点和观察选项
observer.observe(document.body, config);

// 最后,可以随时停止观察
// observer.disconnect();

// 这段代码创建了一个新的 `MutationObserver`,用于监听 `document.body` 上的变化。

// 它将追踪子节点变化、属性变化、文本内容变化等,并在这些变化发生时输出变化的类型。

 

标签:浏览器,observer,DOM,变化,js,MutationObserver,true
From: https://www.cnblogs.com/anans/p/17697517.html

相关文章

  • js 浏览器的5种observer 第二种 IntersectionObserver 详解及使用方法
     IntersectionObserver是一个现代的浏览器API,允许开发者在某个元素与其祖先元素或顶层文档视口发生交叉时得到通知。它非常适合实现图片懒加载、无限滚动、广告曝光率等功能。1.浏览器的兼容性IntersectionObserver目前在大多数现代浏览器中都得到了支持。但是在一些老版......
  • React框架下如何集成H.265网页流媒体EasyPlayer.js视频播放器?
    H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,可支持H.264与H.265编码格式,性能稳定、播放流畅,能支持WebSocket-FLV、HTTP-FLV,HLS(m3u8)、WebRTC等格式的视频流。在功能上,EasyPlayer支持直播、点播、录像、快照截图、MP4播放......
  • python中JSON数据处理
    python和json数据类型对应关系PythonJSONdictionaryobjectlistarraystringstringint,floatnumberboolean(True,False)boolean(true,false)Nonenull需要注意的是,Python支持一些JSON不支持的数据类型,如元组(tuple)、集合(set)和字节串(bytes)。因此,在......
  • RTMP视频服务器EasyDSS互联网视频直播点播平台如何基于FastDFS、ffmpeg、videojs实现
    互联网视频直播点播EasyDSS平台能实现视频流媒体的上传、转码、存储、录像、推流、拉流、直播等功能,在场景上,可以应用到互联网教育、在线课堂、游戏直播、视频点播、无人机等领域。 视频点播平台是指提供用户上传、存储和播放视频内容的在线平台。它可以让用户随时随地观看各......
  • [RxJS] Scheduler
    classObservable{constructor(subscribe){this._subscribe=subscribe;}subscribe(observer){returnthis._subscribe(observer);}staticof(value){returnnewObservable((observer)=>{observer.next(value);obse......
  • Python3 JSON 数据解析
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。Python3中可以使用json模块来对JSON数据进行编解码,它包含了两个函数:json.dumps(): 对数据进行编码。json.loads(): 对数据进行解码。在json的编解码过程中,Python的原始类型与json类型会相互转......
  • js&jquery(写法对比):get input value(获取input值)
    1.JS写法 2.jquery写法 ......
  • JS小方法,一行搞定
    1.数组去重从数组中删除所有重复值,实现方式非常多,我们这里一行代码搞定:constduplicate=(arr)=>[...newSet(arr)];console.log(duplicate(["a","b","c","c","a","b"]));//['a','b','b']2.检查对象是否为......
  • wkt转换成geojson的代码
    安装及导入(在安装shapely之前一定要先安装geos)pipinstallgeospipinstallshapely下面是一个使用Python将WKT转换为GeoJSON的代码示例:importjsonfromshapely.wktimportloadswkt="POINT(1010)"shape=loads(wkt)geojson=json.dumps(shape.__geo_inter......
  • Android项目之JSON解析(3种解析技术详解)
    一、用Android原生技术解析JSON:特点:很麻烦,对于复杂的json数据解析很容易出错!(不推荐使用)1、解析JSON对象的API:JsonObjectJSONObject(String json);将Json字符串解析成Json对象;XxxgetXxx(Stringname);根据name在json对象中得到相应的value。示例代码:(1)获取或创建JSON数据(为了方便,这里......