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, время: 05:12. |