Как запретить слать запросы, если нажали на определенную кнопку в течение какого то времени?
Есть кнопка, по нажатию на которую происходит выгрузка и идет большая нагрузка на базу. Если нажать 10 раз подряд, то будет очередь таких запросов. Как сделать так, чтобы остальные 9 раз не считались, и выполнялся только первый запрос?
Судя по тому, как вопрос сформулирован - то есть без понимания того, как работает веб-сайт, то самое простое решение - это тупо заблокировать кнопку.
Нормальным же решением будет использование очереди.
Нажатие на кнопку помещает задачу в очередь, причем сначала проверяет - есть ли такое задание. Если есть - возвращает ошибку, "задание уже выполняется".
Twitt, если для всех кнопка показывает одну и ту же информацию, то просто кэшировать результат. И пересчитывать по крону раз в 15 минут.
А если разную, то для второго все равно считать. Этак получится что зайдет 10 чловек, и последние 7 просто не дождутся и просто плюнут и уйдут. Тебе надо сначала определиться что ты и кому хочешь показывать, а потом вопросы задавать
Я так понял это где-то на сайте. Есть очень простой вариант. Вам может подойти, если нет желания изучать как юзать очереди.
<button class='button' onclick="hideButton(this)">Кнопка</button>
<script>
function hideButton(button) {
$(button).remove(); // Удалить кнопку, но можете с ней делать что угодно
}
</script>