3-6 如何防止多次点击-重复请求
<html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <button id="btn">按钮</button> <button id="btn2">按钮2</button> <script> // 防抖 const btn = document.querySelector('#btn'); const fn = defa(ad); btn.addEventListener('click', fn) function defa(fn, time = 1000) { let timeId = null; return function() { const self = this; const args = arguments; if(timeId){ clearTimeout(timeId); } timeId = setTimeout(() => { if(fn instanceof Function){ fn.apply(self, ...args) } }, time) } } function ad() { console.log('ok') } </script> <script> // 通过按钮的禁用属性 const ann = document.querySelector('#btn2'); const func = defc(ass) ann.addEventListener('click', func) function defc(fn, time=1000) { return function() { const self = this; const args = arguments; const dis = this.disabled; if(dis) return; self.disabled = true; setTimeout(() => { fn.apply(self, ...args); self.disabled = false; }, time) } } function ass() { console.log('oks') } </script> <script> // 根据网络情况loading 的来限制用户的点击,这只是接口响应慢的情况下 </script> </body> </html>
本文作者:林见夕
本文链接:https://www.cnblogs.com/ifon/p/15971096.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)