由于用户的网络环境等各种原因,防止按钮重复点击,表单重复提交等都是减少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://indiaph24.store/# india online pharmacy
cheapest pharmacy to fill prescriptions with insurance
buying metformin online
https://indiaph24.store/# best india pharmacy
safe canadian pharmacy
mexican pharmaceuticals online Online Pharmacies in Mexico п»їbest mexican online pharmacies
cost of tadalafil generic
canada drugs online Certified Canadian Pharmacies canadian drug stores
online pharmacy search
valtrex order canada
https://indiaph24.store/# top online pharmacy india
top online pharmacy india https://indiaph24.store/# reputable indian online pharmacy
mail order pharmacy india
http://indiaph24.store/# mail order pharmacy india
medical pharmacy south
pet meds without vet prescription canada Licensed Canadian Pharmacy best canadian pharmacy online
canadian pharmacy Licensed Canadian Pharmacy northwest canadian pharmacy
canadian pharmacy drugs online
india online pharmacy http://indiaph24.store/# п»їlegitimate online pharmacies india
indianpharmacy com
prednisone 16 mg
https://indiaph24.store/# best india pharmacy
order valtrex online usa
cheap generic valtrex online
online pharmacy tadalafil 20mg
india online pharmacy http://indiaph24.store/# india pharmacy mail order
buy prescription drugs from india
п»їbest mexican online pharmacies cheapest mexico drugs medicine in mexico pharmacies
https://canadaph24.pro/# best mail order pharmacy canada
best canadian pharmacy online: canadian pharmacy no scripts – canadian drugs
Приветствуем вас, коллеги!
Компания XRumer Co предлагает профессиональные услуги по СЕО продвижению.
Ваш ресурс, как можно отметить, еще только начинает набирать обороты. Для того, чтобы ускорить процесс его роста, готовы предложить наши услуги по СЕО-оптимизации. Продвижение в поисковых системах – наша работа. В ассортименте имеются надежные и рабочие СЕО-инструменты для профессионалов. Наши профессионалы обладают большим опытом и портфолио выполненных проектов – если интересно, предоставим по запросу.
Наша компания предлагает скидку 10% до конца месяца.
Предлагаемые услуги:
– Трастовые ссылки (необходимо каждому сайту) – стоимость 1500-5000 р
– Размещение жирных безанкорных ссылок (рекомендуется для любых сайтов) – 3.900 р
– Качественный прогон на 110000 сайтов в RU.зоне (максимально полезно для сайта) – 2.900 р
– 150 постов В Контакте о вашем сайте (поможет в рекламе) – 3.900 рублей
– Публикации про ваш сайт на 300 интернет-форумах (мощная раскрутка интернет-сайта) – 29000 р
– Мега Постинг – огромный прогон на 3 000 000 ресурсов (огромное размещение для вашего сайта) – 39900 р
– Рассылаем сообщения по сайтам с использованием обратной связи – цена по договоренности, будет зависеть от объемов.
Если что-то не ясно, без сомнений обращайтесь, всегда поможем разобраться.
Telgrm: @xrumers
https://XRumer.cc/
Skype: Loves.Ltd
http://mexicoph24.life/# reputable mexican pharmacies online
Рады приветствовать ваш сайт, друзья!
Компания XRumer Co предлагает свои профессиональные услуги СЕО продвижения.
Ваш интернет-сайт, как можно заметить, еще только набирает обороты. Для того, чтобы ускорить процесс его роста, можем предложить услуги по внешней SEO-оптимизации. Также у нас есть недорогие и качественные инструменты для СЕОшников. У наших специалистов серьезный опыт, в арсенале есть реальные кейсы – если интересует, предоставим по запросу.
Мы можем предложить скидку 10% до конца месяца.
Что мы готовы предложить:
– Размещаем супер трастовые ссылки (необходимо всем сайтам) – от 1,5 до 5000 р
– Размещаем 2500 жирных безанкорных ссылок (рекомендуется всем сайтам) – 3900 руб
– Прогон на 110 тысяч сайтов в RU.зоне (максимально полезно для сайта) – 2.900 рублей
– Разместим 150 постов Вконтакте про ваш сайт (недорогая реклама) – 3900 рублей
– Размещение статей про ваш сайт на 300 топовых интернет-форумах (мощнейшая раскрутка портала) – 29 тыс. р
– СуперПостинг – это прогон по 3 000 000 ресурсов (огромное размещение для вашего сайта) – 39900 руб
– Рассылка сообщений по сайтам с помощью обратной связи – договорная цена, в зависимости от объемов.
Если появятся вопросы, смело обращайтесь, поможем.
Telgrm: @xrumers
https://XRumer.cc/
Skype: Loves.Ltd
indian pharmacies safe indian pharmacy indian pharmacy paypal
cheapest online pharmacy india https://indiaph24.store/# п»їlegitimate online pharmacies india
online pharmacy india
п»їbest mexican online pharmacies cheapest mexico drugs medicine in mexico pharmacies
buy ketoconazole for sale – buy sporanox 100 mg generic itraconazole over the counter
where to buy metformin in canada
prednisone 2.5
http://canadaph24.pro/# my canadian pharmacy review
Приветствуем вас, друзья!
Агентство XRumer LLC предлагает свои профессиональные услуги по СЕО продвижению.
Мы заметили, у вас достаточно молодой портал и ему требуется внешнее SEO продвижение. Мы организовываем профессиональное продвижение под ключ. У нас имеются доступные и качественные инструменты для СЕОшников. У наших специалистов значительный опыт в данной нише, в арсенале присутствуют реальные рабочие кейсы – если интересует, предоставим по запросу.
Сейчас действует скидка на все услуги – 10%.
Наши услуги:
– Размещаем супер трастовые ссылки (нужно абсолютно всем сайтам) – от 1,5 до 5000 рублей
– Размещаем 2500 трастовых безанкорных ссылок (рекомендуется для всех сайтов) – 3.900 рублей
– Качественный прогон на 110 тыс. сайтов в RU.зоне (максимально полезно для сайтов) – 2900 рублей
– Разместим 150 постов Вконтакте о вашем сайте (поможет в рекламе) – 3900 р
– Публикация статей про ваш сайт на 300 интернет-форумах (мощная раскрутка ресурса) – 29.000 руб
– Мега Постинг – это прогон по 3 млн площадок (грандиозное размещение для вашего сайта) – 39 900 рублей
– Рассылаем сообщения по сайтам с использованием обратной связи – стоимость по договоренности, будет зависеть от объема.
Наши специалисты всегда готовы ответить на любые ваши вопросы.
Telgrm: @exrumer
https://XRumer.cc/
Skype: Loves.Ltd
metformin 100 mg
online shopping pharmacy india http://indiaph24.store/# indian pharmacies safe
top online pharmacy india
synthroid tab 112 mcg
http://indiaph24.store/# pharmacy website india
online pharmacy weight loss
purple pharmacy mexico price list cheapest mexico drugs pharmacies in mexico that ship to usa
http://indiaph24.store/# indian pharmacy
metformin 3000 mg
canada pharmacy world
trustworthy canadian pharmacy Licensed Canadian Pharmacy 77 canadian pharmacy
lisinopril 5mg prices
synthroid 400 mg