由于用户的网络环境等各种原因,防止按钮重复点击,表单重复提交等都是减少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秒只会执行一次按钮点击应该执行的事情):
结语
- 本文的例子思路和实现都是相当简单的,但确是很实用的方法。
- 另外,从这个思路出发,还能解决一些类似的问题,比如:
- 音乐进度条的拖动。由于拖动的报告率太高,导致拖动过程界面卡顿,音乐的播放也很卡顿,那就可以用这个思路,每一段时间内只对应响应一次。
- 降低输入框的响应。
- 后续我们再聊聊上面这些例子的解决方法实现。他们本质都是这个模拟加锁的思路,但可能有些需要一些细节上不同的处理。
Автомобільні новини https://autonovosti.kyiv.ua України та світу, тест-драйви нових авто, поради експертів
Автоновини України https://avtomobilist.kyiv.ua огляди машин та новини для автомобілістів
Привет, друзья!
Быстрое обучение и получение диплома магистра – возможно ли это?
mandiplomiks.ru
Слимофор https://slymofor.ru инновационное средство для быстрого похудения.
Авто статті https://automobile.kyiv.ua з порадами з ремонту та обслуговування, авто блог з професійними порадами, огляди новинок
Привет!
Мы готовы предложить дипломы любой профессии по приятным тарифам.
diploms-man.ru
Привет!
Мы изготавливаем дипломы любой профессии по приятным тарифам.
mans-diplomasxx.ru
Щоденні новини https://autoinfo.kyiv.ua із автомобільного середовища. Поради автоаматорам. Тест-драйви
классное порево бесплатно классное порево бесплатно .
Сериал “911: Служба спасения” https://911-sluzhba-spaseniya.watch рассказывает о работе сотрудников экстренных служб Лос-Анджелеса, включая пожарных, медиков и операторов 911. Они ежедневно сталкиваются с опасными ситуациями, спасая жизни и решая сложные личные проблемы. Смотрите онлайн в хорошем качестве HD, бесплатно, все сезоны.
В нашем интернет магазине https://shop-uggs.ru представлен широкий ассортимент оригинальных женских, мужских и детских UGG Australia. Вы можете купить угги у нас в Москве, а так же с доставкой по России без предоплаты. Мы привозим 2 пары обуви на примерку, вы сможете сначала примерить уги и только потом оплачивать те угги которые вам подошли.
Официальный сайт по продаже оригинальных кроссовок изи буст https://yeezy-boost-shop.ru в Москве. Мы продаем yeezy boost оригинал с доставкой по всей России. В нашей линейке есть такие модели Adidas yeezy 350, yeezy 500, yeezy slide.
lyrica rx
lioresal medication
Привет, друзья!
Мы готовы предложить дипломы психологов, юристов, экономистов и любых других профессий.
newsofgames.ru/kupit-diplom-bez-posrednikov-byistro-i-nadezhno
Рады помочь!.
tadacip 20
lyrica prices in canada
Здравствуйте!
Заказать диплом университета.
xleks.ru/2024/07/04/shirokiy-katalog-dokumentov-v-znamenitom-internet-magazine.html
Здравствуйте!
Сколько стоит получить диплом высшего и среднего образования легально?
arusak-diploms-srednee.ru/kupit-diplom-v-krasnoiarske
самое классное порево klassny-sex.ru .
Привет!
Приобрести документ ВУЗа
ast-diploms.com/kupit-diplom-ekaterinbur
finasteride over the counter – uroxatral 10 mg canada buy uroxatral
Привет, друзья!
Купить документ о получении высшего образования можно у нас в Москве.
diploms-x24.ru/kupit-diplom-ekaterinbur
Удачи!
Добрый день!
Заказать документ ВУЗа вы сможете у нас.
diplomyx.com/kupit-diplom-sankt-peterburg
Хорошей учебы!
порево классный секс klassny-sex.ru .
Привет, друзья!
Стоимость дипломов высшего и среднего образования и как избежать подделок
landik-diploms-srednee.ru/diplom-bakalavra В
Здравствуйте!
Рекомендации по безопасной покупке диплома о высшем образовании
landik-diploms-srednee.ru/kupit-diplom-v-kazani В
Добрый день!
Заказать документ института
diploms-x.com/kupit-diplom-vracha
Добрый день!
Приобрести документ ВУЗа
diplomasx24.ru/kupit-diplom-vracha
car rental Montenegro renting a car in Montenegro
Автомобільний портал https://allauto.kyiv.ua який захоплює своїми тест-драйвами та новими новинами автосвіту
Новини автомобільного ринку https://autoguide.kyiv.ua та автопромисловості
Автомобільний портал https://autodream.com.ua новини та огляди новинок авторинку.
how to get modafinil in australia
Привет!
Приобретение диплома ПТУ с сокращенной программой обучения в Москве
karriere.kv-architektur.de/купить-диплом-иргупс/
лучшее бесплатное порно 2024 http://www.best-free-porno.ru/ .
классное порево видео https://klassny-sex.ru/ .
cheap finasteride generic – finasteride sale brand alfuzosin 10mg
generic lyrica 2019
лучшее порно смотреть онлайн бесплатно лучшее порно смотреть онлайн бесплатно .
классное порево классное порево .
Мазь для суставов https://sustalits.ru заказать онлайн.
Привет!
Где купить диплом по необходимой специальности?
my.omsystem.com/members/anthonyjoseph
Привет!
Где заказать диплом специалиста?
messenger.wepluz.com/read-blog/11105
Привет, друзья!
Где заказать диплом специалиста?
zzatem.com/read-blog/4134
Здравствуйте!
Мы предлагаем дипломы любых профессий по невысоким ценам.
service.gnla.com.au/2024/06/30/купить-диплом-капитана/
Привет, друзья!
Мы изготавливаем дипломы любых профессий по приятным тарифам.
cimat.com.do/купить-дипломы-гознак/
I really like looking through a post that can make people think. Also, many thanks for allowing me to comment.
Привет, друзья!
Приобрести документ о получении высшего образования можно у нас в Москве.
ast-diplom.com/kupit-diplom-s-registraciej
Здравствуйте!
Приобрести документ ВУЗа вы имеете возможность в нашем сервисе.
diplomyx.com/kupit-diplom-krasnodar