当前位置: 首页 > 知识库问答 >
问题:

前端 - 如何避免 IntersectionObserver 观察到的元素重复触发回调?

宇文俊风
2024-10-24

使用 IntersectionObserver 进行懒加载时,滚动页面或调整窗口大小可能导致重复触发,如何优化?

共有1个答案

微生德运
2024-10-24

尝试第一次触发时,给相关元素加个自定义属性;下次触发,检测有无属性,有则跳过。

 类似资料:
  • 我目前在Android和Kotlin上使用RxJava,但我有一个问题,如果不使用toBlocking(),我无法解决。 我在员工服务中有一个方法,它返回一个可观察的 这一切都很好,因为每当员工发生变化时,这个可观察对象就会发出新的员工列表。但是我想从员工那里生成一个PDF文件,这显然不需要每次员工更改时都运行。另外,我想从PDF生成器方法返回一个可完成的对象。我想在PDF中添加一个标题,然后遍历

  • 我想在片段中加载任务,在片段的onviewCreate中,我注册observer,在片段的onResume中,我异步加载任务,当第一次输入片段时,它工作正常,但当我导航到其他片段,然后返回到任务片段时,回调将被调用两次。 我知道如果LiveData已经有了数据集,它将被传递给观察者,因此当返回到任务片段时,在中注册观察者时,将触发,在onResume中,将第二次触发,我想知道如何避免这种情况。我搜

  • 我已经做javascript有一段时间了。然而,我对Angular 2还比较陌生,所以我对可观测的东西几乎一无所知。当我读到对可观测事物的描述时,它们听起来很像我已经知道的回调。当我问谷歌时,有回调和promise之间的比较,也有promise和可观察之间的比较。然而,我找不到回调和可观察之间的任何比较。 回调和可观察之间有什么区别?

  • 我使用for循环将学生详细信息添加到ArrayList。当我给第二个学生提供详细信息时,它会覆盖第一个数据。螺柱类 将数据添加到ArrayList的主类。 输出:第二个数据[2,2]后的实际输出辊数[1]。预期输出应为卷号: A1姓名: F1 L1性别:男性年龄: 11体育赛事:标枪 报名号:A2姓名:F2 L2性别:女年龄:14体育项目:100米跑 报名号:A3姓名:F3 L3性别:男性年龄:1

  • 问题内容: 我只有一个班很多实例。每个实例都是其他几个实例的观察者。同样,每个实例也可以通过几个其他实例观察到。 如何避免在观察者中调用update()的无限循环? 问题答案: 您正在寻找一种检测循环的图遍历算法。一种简单的方法(仅在单线程方案中有效)是保持全局/静态计数器,以使每个顶级调用都获得唯一的标识符。然后,每个观察者都跟踪是否已经使用给定的标识符(ID)处理了更新,并且在这种情况下将其忽

  • 我有一个简单的项目,该项目将个人信息提供给数据库(sqlite),现在我想避免插入重复值(按名称),我不能做什么?谢谢你们

  • 钱箱类: 商户类: 输入数据: 我的任务 计算每个商家的总金额并返回商家列表 我正在尝试使用Stream API解决这个任务。并编写了以下代码: 结果 但显然,流返回四个对象,而不是所需的两个对象。我意识到,地图(第二行)为每个cashBoxId创建了四个对象。而且我不知道如何通过进行过滤,也不知道如何获得没有重复的结果。

  • 在这个博客中,他给出了这个(复制/粘贴以下代码)回调地狱的例子。但是,没有提到如何使用反应式扩展来消除问题。 所以这里F3取决于F1的完成,而F4和F5取决于F2的完成。 想知道Rx中的功能等效物是什么 如何在Rx中表示F1、F2、F3、F4和F5都应异步拉取 注意:我目前正在尝试将我的头围绕Rx,所以在问这个问题之前我没有尝试解决这个例子。