由于用户的网络环境等各种原因,防止按钮重复点击,表单重复提交等都是减少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秒只会执行一次按钮点击应该执行的事情):
结语
- 本文的例子思路和实现都是相当简单的,但确是很实用的方法。
- 另外,从这个思路出发,还能解决一些类似的问题,比如:
- 音乐进度条的拖动。由于拖动的报告率太高,导致拖动过程界面卡顿,音乐的播放也很卡顿,那就可以用这个思路,每一段时间内只对应响应一次。
- 降低输入框的响应。
- 后续我们再聊聊上面这些例子的解决方法实现。他们本质都是这个模拟加锁的思路,但可能有些需要一些细节上不同的处理。
cheapest pharmacy for prescriptions without insurance: cheapest pharmacy – pharmacy coupons
indian pharmacy: buy medicines online in india – pharmacy website india
canadian pharmacy tampa: real canadian pharmacy – legit canadian online pharmacy
lisinopril 2
https://pharmmexico.online/# reputable mexican pharmacies online
reputable indian online pharmacy: online shopping pharmacy india – online pharmacy india
purple pharmacy mexico price list: mexico pharmacy – reputable mexican pharmacies online
http://pharmworld.store/# no prescription needed canadian pharmacy
canadian drug prices canadapharmacyonline com cross border pharmacy canada
canadian pharmacy world coupons: pharm world – canadian pharmacy without prescription
https://pharmindia.online/# top 10 online pharmacy in india
glucophage xl
canadadrugpharmacy com
indian pharmacy online: pharmacy website india – mail order pharmacy india
indian pharmacy online Online medicine home delivery top 10 online pharmacy in india
lisinopril 125 mg
cost of metformin 500 mg in india
canadian pharmacies comparison
order valtrex online
cheapest online pharmacy india online shopping pharmacy india п»їlegitimate online pharmacies india
zithromax 1000mg online
azithromycin 2019
tadalafil 40mg
online pharmacy synthroid
cenforce.pro: cheapest cenforce – cheapest cenforce
п»їkamagra kamagra oral jelly buy kamagra online usa
prednisone 50 mg tablet
Kamagra Oral Jelly: kamagra oral jelly – super kamagra
Levitra 20 mg for sale: Cheap Levitra online – buy Levitra over the counter
synthroid 0.088 mg
zocor gulf – fenofibrate sound lipitor foreign
Cialis over the counter Generic Cialis without a doctor prescription cialis for sale
metformin 500 mg online
Добрый день, рады вашему интересу!
Агентство XRumer Art предлагает свои профессиональные услуги СЕО продвижения.
Мы видим, у вас достаточно молодой ресурс и ему требуется SEO продвижение в поисковике. Мы предлагаем продвижение в поиске полностью под ключ. У нас имеются недорогие и эффективные инструменты для СЕОшников. У наших специалистов большой опыт, в арсенале есть успешные рабочие кейсы – предоставим по запросу.
Наша компания предлагает скидку 10% до конца месяца на самые востребованные услуги.
Услуги:
– Супер трастовые ссылки (необходимо каждому сайту) – стоимость от 1,5 до 5000 руб
– Размещаем 2500 трастовых безанкорных ссылок (полезно любым сайтам) – 3900 рублей
– Топовый прогон по 110 тыс. сайтам в RU.зоне (максимально полезно для сайта) – 2900 рублей
– 150 постов в VK про ваш сайт (отличная реклама) – 3.900 рублей
– Публикация статей про ваш сайт на 300 топовых онлайн-форумах (мощнейшая раскрутка онлайн-сайта) – 29000 р
– Супер Постинг – отличный прогон по 3 млн ресурсов (мощнейшее размещение для вашего сайта) – 39900 руб
– Рассылка сообщений по сайтам при помощи обратной связи – договорная цена, зависит от объема.
Если возникнут вопросы, всегда обращайтесь, поможем. принимаем usdt
Телега: @exrumer
Skype: Loves.ltd
www: https://XRumer.cc/
https://kamagra.win/# cheap kamagra
С радостью приветствуем вас, коллеги!
К вам обращается компания по СЕО продвижению XRumer Inc.
Ваш сайт, как мы видим, только набирает обороты. Для того, чтобы максимально ускорить его рост, можем предложить наши услуги по внешней SEO-оптимизации. Продвижение в поисковиках – наша специализация. В ассортименте присутствуют надежные и рабочие СЕО-инструменты для профессионалов. Наша команда обладает большим опытом и портфолио успешных проектов – предоставим по запросу.
Прямо сейчас предлагаем скидку на все услуги – 10%.
Услуги:
– Размещаем вечные трастовые ссылки (нужно всем сайтам) – стоимость от 1,5 до 5000 р
– Размещаем 2500 безанкорных ссылок (полезно любым сайтам) – 3900 р
– Профессиональный прогон по 110000 сайтам в зоне RU (максимально полезно для сайтов) – 2.900 р
– Публикуем 150 постов В Контакте о вашем сайте (недорогая реклама) – 3.900 р
– Статьи о вашем сайте на 300 топовых форумах (мощнейшая раскрутка интернет-сайта) – 29.000 руб
– СуперПостинг – комплексный прогон по 3 000 000 ресурсов (огромное размещение для вашего сайта) – 39900 руб
– Рассылаем рекламные сообщения по сайтам при помощи обратной связи – стоимость по договоренности, будет зависеть от объема.
Наши специалисты готовы ответить на ваши вопросы. принимаем usdt
Телегрм: @exrumer
Skype: Loves.ltd
www: https://xrumer.cc
synthroid tablets 25 mcg
low cost online pharmacy
Приветствуем вас на вашем интернет-портале!
Компания XRumer LLC предлагает профессиональные услуги СЕО продвижения.
Ваш ресурс, как можно отметить, только начинает набирать обороты. Для того, чтобы ускорить процесс его роста, можем предложить услуги по внешней СЕО-оптимизации. Продвижение в поисковиках – направление нашей компании. В ассортименте представлены эффективные СЕО-инструменты для экспертов. Наши специалисты обладают большим опытом и портфолио успешных проектов – предоставим по вашему запросу.
Наша компания может предложить скидку 10% на популярные услуги.
Услуги нашей компании:
– Супер трастовые ссылки (требуется абсолютно всем сайтам) – цена 1500-5000 руб
– Размещаем 2500 жирных безанкорных ссылок (желательно любым сайтам) – 3.900 рублей
– Прогон по 110000 сайтам в зоне RU (максимально полезно для сайта) – 2900 рублей
– Размещение 150 постов в VK про ваш сайт (недорогая реклама) – 3900 рублей
– Размещение статей про ваш сайт на 300 интернет-форумах (мощнейшая раскрутка ресурса) – 29.000 руб
– Супер Постинг – гигантский прогон по 3 млн ресурсов (мощнейший пакет для ваших сайтов) – 39 900 руб
– Рассылка сообщений по сайтам через форму обратной связи – цена по договоренности, зависит от объемов.
С огромным удовольствием ответим на ваши вопросы, обращайтесь. принимаем usdt
Телегрм: @exrumer
Skype: Loves.ltd
www: https://xrumer.cc/
Levitra 10 mg buy online Levitra generic price Cheap Levitra online
http://cialist.pro/# п»їcialis generic
buy prednisone with paypal
http://cenforce.pro/# buy cenforce
azithromycin 900 mg
prednisone 60 mg tablets
Kamagra 100mg price: kamagra.win – buy Kamagra
canadian pharmacy india
https://cenforce.pro/# cenforce.pro
Приветствую, друзья!
К вам обращается компания по СЕО продвижению XRumer LLC.
Ваш сайт, как мы заметили, еще только набирает обороты. Чтобы максимально ускорить процесс его роста, можем предложить услуги по СЕО-оптимизации. Продвижение в поисковых системах – направление нашей компании. В ассортименте представлены эффективные СЕО-инструменты для экспертов. У нас большой опыт и огромное портфолио успешных проектов – если интересует, покажем по вашему запросу.
Мы готовы предложить скидку 10% на востребованные услуги.
Наши услуги:
– Трастовые ссылки (необходимо любому сайту) – стоимость 1500-5000 р
– Размещаем 2500 трастовых безанкорных ссылок (рекомендовано для любых сайтов) – 3900 р
– Прогон по 110000 сайтам в RU.зоне (максимально полезно для сайтов) – 2900 рублей
– Опубликуем 150 постов в VK про ваш сайт (отличная реклама) – 3.900 руб
– Публикации про ваш сайт на 300 интернет-форумах (мощная раскрутка сайта) – 29.000 рублей
– СуперПостинг – это прогон на 3 миллиона ресурсов (мощное размещение для ваших сайтов) – 39 тысяч р
– Рассылка рекламных сообщений по сайтам через форму обратной связи – стоимость по договоренности, в зависимости от объемов.
Обратитесь, всегда подскажем по любому вопросу. принимаем usdt
Телега: @exrumer
Skype: Loves.ltd
www: https://xrumer.cc
synthroid tablet 125 mcg cost