故障原因:没有使用防抖,加上js的防抖就可以解决了。
JS中的防抖应用一看就会
1. 定义一个防抖函数:
//简易的debounce闭包防抖函数
/* 需要让debounce的返回值是一个函数
fn : 回调函数 传进来的是正真的业务逻辑
delay : 延时时间
*/
function debounce(fn, delay) {
let time = null; //time用来控制事件的触发
return function() {
if (time !== null) {
clearTimeout(time);
}
time = setTimeout(() => {
fn.call(this);
//利用call(),让this的指针从指向window 转成指向input
}, delay)
}
}
2. 在托盘右击事件中使用
闭包的形式调用,又加深了对闭包的理解!
//右键点击图标时,出现的菜单,通过Menu.buildFromTemplate定制,这里只包含退出程序的选项。
tray.on('right-click', debounce(() => {
tray.popUpContextMenu(menuConfig)
}, 120))