前端面试时的两个提问,关于js防抖和vuex刷新页面的问题,求助大佬帮忙解答一下?

作者站长头像
站长
· 阅读数 8

1、js的防抖,我给一个按钮添加了防抖的功能,用户点击按钮半秒之后才触发事件,那么如果用户一直频繁的点击按钮,是不是这个事件就触发不了呢?这种情况怎么解决呢?

2、vuex相关的问题,当用户刷新页面的时候,当前数据会丢失,面试官问我怎么处理,我说在 sessionStorage里面存一份。那么面试官接着问,那你的数据是在vuex和sessionStorage各存一份吗?当我听到这里的时候,我也觉得不合理,所以这种情况怎么回答呢?

以上就是我的两个问题,希望有大神帮我解答一下,谢谢了!!!

回复
1个回答
avatar
test
2024-06-30

第一个问题,你没有理解防抖的机制,防抖的原理就是设置一个定时器,等待一段时间后再执行函数,如果在这段时间内再次触发了事件,就会清除原来的定时器,重新设置一个新的定时器。所以,如果用户一直频繁地点击按钮,事件确实是不会被触发的。这是防抖的作用,因为防抖的目的就是阻止在短时间内频繁触发事件。可以用节流,你想要频繁点击的时候也能触发。第二个问题,你可以存在浏览器缓存里,刷新的时候,从浏览器读取数据中性初始化Vuex,你要想想你为什么要存浏览器缓存里,是因为你的数据是存在内存里的,刷新的时候Vuex会掉状态才存的,存了两份但是都是同一个状态,不突兀,就是记得两份的数据要保持同步,每次修改的时候。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容