由于用户的网络环境等各种原因,防止按钮重复点击,表单重复提交等都是减少bug发生,降低服务器压力等相当有效的方法。下面来聊聊通过模拟我们在操作系统里类似加锁的思想来防止重复点击。
目录
思路
- 声明一个锁(布尔值),用来标识按钮,变量是否被锁上
- 当按钮按下后,把布尔值设置为false,即标记为已锁上
- 设置一个延时函数setTimeout(),等待一段时间后再把这个锁归还,设置布尔值为true
- 显然我们的按钮点击事件一开始就应该判断锁是否被锁上,是则直接结束。否则才能正常执行
示例
- HTML / JS
<div style="width:100%;display:flex;justify-content: center;background:#66ccff;border-radius:10px;border 1px solid #66ccff;">
<button onclick="btn_click()" style="border-radius:10px;">
点死我
</button>
</div>
<script>
//锁变量
let lock = true;
//按钮点击执行函数
function btn_click() {
if(lock == false) {
return;
}
//加锁
lock = false;
//执行按钮点击本应执行的事情
alert("点了一下我捏");
//限制间隔5000毫秒(即5秒)只能执行一次
setTimeout(function(){
//解锁
lock = true;
},5000);
}
</script>
- 效果(每隔5秒只会执行一次按钮点击应该执行的事情):
结语
- 本文的例子思路和实现都是相当简单的,但确是很实用的方法。
- 另外,从这个思路出发,还能解决一些类似的问题,比如:
- 音乐进度条的拖动。由于拖动的报告率太高,导致拖动过程界面卡顿,音乐的播放也很卡顿,那就可以用这个思路,每一段时间内只对应响应一次。
- 降低输入框的响应。
- 后续我们再聊聊上面这些例子的解决方法实现。他们本质都是这个模拟加锁的思路,但可能有些需要一些细节上不同的处理。
Приветствуем вас на вашем портале!
К вам обращается компания СЕО продвижения XRumer Art.
Ваш сайт, как можно отметить, еще только набирает обороты. Для того, чтобы максимально ускорить его рост, можем предложить наши услуги по СЕО-оптимизации. Также у нас имеются доступные и качественные инструменты для SEO-специалистов. У нас серьезный опыт, в арсенале имеются реальные кейсы – если интересно, предоставим по запросу.
Наша компания предлагает скидку 10% на все услуги.
Предлагаемые услуги:
– Размещаем трастовые ссылки (требуется всем сайтам) – цена от 1,5 до 5000 р
– Безанкорные ссылки (2500 штук) (рекомендуется любым сайтам) – 3900 р
– Прогон по 110 000 сайтам (RU.зона) – 2900 руб
– 150 постов в VK о вашем сайте (поможет в рекламе) – 3900 рублей
– Размещение статей про ваш сайт на 300 интернет-форумах (мощнейшая раскрутка интернет-сайта) – 29 тыс. рублей
– СуперПостинг – это прогон по 3 000 000 площадок (мощнейшее размещение для ваших сайтов) – 39900 руб
– Рассылка сообщений по сайтам при помощи обратной связи – стоимость по договоренности, зависит от объемов.
Наши специалисты ответят на любые вопросы, в любое время обращайтесь.
Telgrm: @exrumer
https://XRumer.cc/
Skype: Loves.Ltd
112 mcg synthroid price
http://canadaph24.pro/# canadian pharmacy meds
cheap canadian pharmacy canadian pharmacies canadian pharmacy ratings
valtrex medicine purchase
canadian pharmacy ed medications Prescription Drugs from Canada canadian drugs online
Online medicine home delivery http://indiaph24.store/# mail order pharmacy india
best india pharmacy
best no prescription pharmacy
https://mexicoph24.life/# medication from mexico pharmacy
where to buy azithromycin 250 mg
prednisone 20 mg medication
online pharmacy tadalafil 20mg
http://mexicoph24.life/# mexican drugstore online
cialis from india
azithromycin tablets over the counter
mexican drugstore online mexico pharmacies prescription drugs mexican pharmaceuticals online
mexico drug stores pharmacies: pharmacies in mexico that ship to usa – buying prescription drugs in mexico
Online medicine order https://indiaph24.store/# reputable indian pharmacies
reputable indian pharmacies
top 10 online pharmacy in india http://indiaph24.store/# buy prescription drugs from india
reputable indian pharmacies
mexico drug stores pharmacies mexican pharmacy mexico pharmacy
best value pharmacy
zyprexa for anorexia
http://indiaph24.store/# india pharmacy
zestril 20 mg price
where can i buy synthroid cheap
http://canadaph24.pro/# canadian world pharmacy
happy family store rx
cialis 20 mg buy online uk
cheapest pharmacy
online shopping pharmacy india http://indiaph24.store/# best online pharmacy india
top 10 online pharmacy in india
canadian pharmacy meds Prescription Drugs from Canada canadian pharmacy mall
online pharmacy india indian pharmacy best online pharmacy india
buy azithromycin over the counter uk
https://mexicoph24.life/# mexican drugstore online
metformin for sale online
india online pharmacy http://indiaph24.store/# pharmacy website india
п»їlegitimate online pharmacies india
antibiotic zithromax
Всё о радиаторах отопления https://heat-komfort.ru/ – выбор радиатора, монтаж, обслуживание.
safe canadian pharmacy Large Selection of Medications from Canada canadian drugs
zestril 5mg
mexican pharmacy Online Pharmacies in Mexico best online pharmacies in mexico
http://canadaph24.pro/# canadian compounding pharmacy
zithromax cream
best european online pharmacy
https://canadaph24.pro/# canadian king pharmacy
online pharmacy products
synthroid 110 mcg
promo code for canadian pharmacy meds
where can i buy zithromax over the counter
purple pharmacy mexico price list Online Pharmacies in Mexico mexican border pharmacies shipping to usa