为什么addEventListener(“ resize”)可能会触发?

时间:2019-12-31 03:02:13

标签: javascript

我有2个文件。我不知道为什么我要打1次。假设我将窗口的大小调整了1000倍,即i = 1000。单击窗口后,您将获得1001倍的喜讯,而不仅仅是1次。我有一个包含新的EventHandler()的小项目,我将窗口的大小调整了100倍,所以它滞后很多。如何避免这种情况呢? 顺便说一句,这是密码笔 https://codepen.io/pen/?editors=1111

file-A

export.class SayHi{
  constructor(){
    document.addEventListener("click",()=>{
      console.log("hi")
    })
  }
}

file-B

import SayHi from "./file-A"
var i=0;
var sayHi=new SayHi();
window.addEventListener("resize",()=>{
  i++
  sayHi=new SayHi();
  console.log(i)
})

1 个答案:

答案 0 :(得分:2)

resize事件确实引发了很多事情。在大多数台式机上,它会在调整大小过程中触发事件循环的每个周期。

为什么?因为每次调整大小都是一个单独的事件。

如果在调整大小后仅需要触发一个事件,则可以查看对事件进行反跳或限制操作。

Javascript debouncing and throttling on Window resize