JS - блокировка действий пользователя при выполнении функции
Есть функция, которая вызывается onclick.
Длительность её выполнения - 1 секунда. Как сделать так, чтобы на эту 1 секунду браузер не реагировал на действия пользователя, функция при клике не вызывалась по 200 раз и т.д? |
Можешь сделать так что бы при клике на 1 сек появлялся блок поверх всех, просто прозрачный, фиксированный, на всю ширину и высоту с высоким индексом.
|
Цитата:
Там кроме клика ещё mousescroll анимация. Т.е. блок - да, но ещё бы скрол отменить как-то |
Если у тебя там долгие вычисления - браузер и так повиснет.
Если ajax-запрос, то есть два варианта. Первый - тупо выполнять запрос синхронно, но оне нехорош тем, что повиснет весь интерфейс. Второй таков: <html> <head> <script> var request_is_in_progress = false; function request() { if (request_is_in_progress) return; request_is_in_progress = true; $.post("somescript.php", function() { request_is_in_progress = false; }); } </script> </head> <body> <button onclick="request()">Do request</button> </body> </html> |
Часовой пояс GMT +3, время: 01:31. |