由于用户的网络环境等各种原因,防止按钮重复点击,表单重复提交等都是减少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秒只会执行一次按钮点击应该执行的事情):
结语
- 本文的例子思路和实现都是相当简单的,但确是很实用的方法。
- 另外,从这个思路出发,还能解决一些类似的问题,比如:
- 音乐进度条的拖动。由于拖动的报告率太高,导致拖动过程界面卡顿,音乐的播放也很卡顿,那就可以用这个思路,每一段时间内只对应响应一次。
- 降低输入框的响应。
- 后续我们再聊聊上面这些例子的解决方法实现。他们本质都是这个模拟加锁的思路,但可能有些需要一些细节上不同的处理。
where can i buy ed pills: ed drugs online – ed medicine online
cheap scripts pharmacy
zestoretic 10 12.5
https://edpill.top/# online ed meds
pills for erectile dysfunction online: ed pills cheap – buy ed pills
[url=http://vatrex.online/]valtrex 1g cost[/url]
buy medications without a prescription buy meds online without prescription buy medication online without prescription
fda methylprednisolone – buy generic medrol over the counter generic astelin 10 ml
Добрый день всем!
Было ли у вас когда-нибудь такое, что приходилось писать дипломную работу в сжатые сроки? Это действительно требует огромной ответственности и напряженных усилий, но важно не сдаваться и продолжать активно заниматься учебными процессами, чем я и занимаюсь.
Для тех, кто умеет искать и анализировать информацию в интернете, это действительно помогает в процессе согласования и написания дипломной работы. Не нужно тратить время на посещение библиотек или организацию встреч с дипломным руководителем. Здесь представлены надежные данные для заказа и написания дипломных и курсовых работ с гарантией качества и доставкой по России. Можете ознакомиться с предложениями по ссылке , проверено!
http://asgarda.mybb.ru/viewtopic.php?id=659#p966
купить диплом колледжа
купить диплом Гознак
купить диплом Вуза
купить диплом университета
купить аттестат
Желаю любому пятерошных) отметок!
canadian pharmacy without prescription canada drugs coupon code rxpharmacycoupons
synthroid otc
http://medicationnoprescription.pro/# pharmacy with no prescription
[url=http://metformindi.com/]metformin prescription[/url]
cheapest pharmacy for prescription drugs cheapest pharmacy for prescriptions without insurance canada drugs coupon code
prednisone 100 mg daily
canada drugs no prescription: purchasing prescription drugs online – canadian rx prescription drugstore
canadian pharmacy without prescription: cheapest pharmacy for prescriptions – canadian pharmacy world coupon
canadian pharmacy no prescription needed
[url=http://pharmgf.online/]pharmacy online shopping usa[/url]
ed meds by mail affordable ed medication online ed medications
order ed pills online: ed prescriptions online – online erectile dysfunction prescription
online pharmacy no prescription: mail order prescription drugs from canada – pharmacy online 365 discount code
http://edpill.top/# order ed pills
canadian pharmacy coupon code: canada pharmacy coupon – offshore pharmacy no prescription
I urge you to avoid this platform. My own encounter with it was nothing but frustration as well as suspicion of deceptive behavior. Exercise extreme caution, or even better, look for a trustworthy platform for your needs.
http://medicationnoprescription.pro/# order prescription from canada
ed doctor online where can i get ed pills erection pills online
zestril 10 mg
https://onlinepharmacyworld.shop/# no prescription needed canadian pharmacy
cheap prescription drugs online order prescription from canada no prescription medicine
http://onlinepharmacyworld.shop/# canadian online pharmacy no prescription
[url=https://tadalafilstd.online/]tadalafil 40 mg india[/url]
erectile dysfunction pills online online prescription for ed online ed drugs
canadian pharmacy coupon code: pharmacy no prescription required – pharmacy online 365 discount code
best website to buy prescription drugs: online pharmacies without prescription – online drugs no prescription
prednisone 5093
valtrex cost uk
buy prednisone online canada
[url=http://tadalafilgf.com/]ordering cialis online in canada[/url]
[url=https://bestmetformin.online/]metformin 40 mg[/url]
[url=http://bmtadalafil.online/]tadalafil 40[/url]
[url=https://synthroidx.online/]synthroid 1mg[/url]
http://medicationnoprescription.pro/# canada prescriptions by mail
https://kursovuyupishem.ru/
mail order prescription drugs from canada online pharmacy no prescription needed cheap pharmacy no prescription
buy lisinopril no prescription
pharmacy discount card
https://medicationnoprescription.pro/# buying prescription medicine online
buy zithromax online australia
buy azithromycin 250 mg without prescription