gpt4 book ai didi

javascript - 为什么 addEventListener ("resize") 会触发多次?

转载 作者:行者123 更新时间:2023-12-01 00:19:25 25 4
gpt4 key购买 nike

我有 2 个文件。我想知道为什么我会嗨 i+1 次。假设我将窗口大小调整了 1000 次,即 i=1000。一旦我点击窗口,我就会得到 1001 次 hi,而不仅仅是 1 次。我有一个包含 new 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)
})

最佳答案

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

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

如果您只需要在调整大小完成后触发一个事件,您可以考虑对事件进行去抖动或限制。

Javascript debouncing and throttling on Window resize

关于javascript - 为什么 addEventListener ("resize") 会触发多次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59539102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com