简介:当用户调整浏览器窗口大小时,浏览器会触发 resize
事件。通常,我们希望在窗口大小改变时执行一些操作,但是如果用户频繁调整窗口大小,可能会导致这些操作被频繁触发,影响页面性能和用户体验。这时候,防抖函数就派上了用场。这里来记录一下
防抖函数:就是某一高频事件不断被触发时,仅在最后一次真正执行事件处理代码,将多次执行变为最后一次执行;
这里我们使用防抖函数来监听浏览器窗口拖拽事件:
//定义防抖函数
debounce(func, wait) {
let timeout;
return function () {
const context = this;
const args = arguments;
const later = function () {
timeout = null;
func.apply(context, args);
};
clearTimeout(timeout);
timeout = setTimeout(later, wait);
};
},
然后直接调用:
//mounted() {
window.addEventListener(
"resize",
this.debounce(() => {
this.initCanvas();
this.getImage();
}, 5000)
); // 5000 毫秒即 5 秒
//},
可以看到,给window窗口添加了 resize 监听事件,5秒执行一次。