当前状况:用户在点击按钮保存,无唯一性约束的信息时,前端发送请求,请求成功的回调函数内将按钮隐藏。
遇到问题:网络响应慢时,前端未立即触发成功回调。导致用户多次点击。
解决方案:1.节流或防抖处理 2. 加loading,禁用按钮,控制按钮可用性
扩展问题:节流,防抖,状态控制,哪一种处理方式,更合理一些?是否要为网络延迟导致的用户的误操作都做一下类似处理。
个人建议 这里采用加loading的方式,用户体验更好,让用户知道她的点击是有效的(页面有相应的反馈)
节流、防抖 一般是用于事件频繁触发导致回调函数频繁执行的情况,虽然你这个案例中也存在频繁click的情况,但是你这里其实是可以避免频繁click的,比如loading状态下的按钮禁止点击,而且最主要的是这里你不需要用户频繁的点击,所以说loading的方式更好,扯远了;节流、防抖适用于事件频繁触发导致回调函数频繁执行的情况,比如页面搜索框用input事件的时候,其实可以改成change事件,当然非要用input又不想让回调频繁执行,可以采用防抖处理,再比如页面的滚动事件和它的回调处理函数就适合用节流、防抖。
推荐 如果对节流、防抖不是很了解,推荐阅读JavaScript 节流、防抖