Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.07.2014, 13:35
Интересующийся
Отправить личное сообщение для PickUp Посмотреть профиль Найти все сообщения от PickUp
 
Регистрация: 04.02.2014
Сообщений: 12

JS - блокировка действий пользователя при выполнении функции
Есть функция, которая вызывается onclick.
Длительность её выполнения - 1 секунда.
Как сделать так, чтобы на эту 1 секунду браузер не реагировал на действия пользователя, функция при клике не вызывалась по 200 раз и т.д?

Последний раз редактировалось PickUp, 15.07.2014 в 14:28.
Ответить с цитированием
  #2 (permalink)  
Старый 15.07.2014, 14:48
Аватар для hfts_rider
Профессор
Отправить личное сообщение для hfts_rider Посмотреть профиль Найти все сообщения от hfts_rider
 
Регистрация: 26.01.2014
Сообщений: 181

Можешь сделать так что бы при клике на 1 сек появлялся блок поверх всех, просто прозрачный, фиксированный, на всю ширину и высоту с высоким индексом.
Ответить с цитированием
  #3 (permalink)  
Старый 15.07.2014, 14:52
Интересующийся
Отправить личное сообщение для PickUp Посмотреть профиль Найти все сообщения от PickUp
 
Регистрация: 04.02.2014
Сообщений: 12

Сообщение от hfts_rider Посмотреть сообщение
Можешь сделать так что бы при клике на 1 сек появлялся блок поверх всех, просто прозрачный, фиксированный, на всю ширину и высоту с высоким индексом.
забыл дописать)
Там кроме клика ещё mousescroll анимация.
Т.е. блок - да, но ещё бы скрол отменить как-то
Ответить с цитированием
  #4 (permalink)  
Старый 15.07.2014, 17:56
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,435

Если у тебя там долгие вычисления - браузер и так повиснет.
Если 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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS при выборе определнных option расчитывается разная формула Psy Diamond Общие вопросы Javascript 8 22.04.2014 15:48
Почему на элемены импортированные с помощью .load функции JS не действуют? Vladjiss jQuery 6 23.06.2013 04:02
Блокировка действий пользователя тома Общие вопросы Javascript 2 08.04.2013 07:48
Ускорение при выполнении setInterval.. Sweet Элементы интерфейса 6 17.03.2010 09:24
Проверка имени пользователя при вводе st1512 AJAX и COMET 1 07.09.2009 08:58