Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.03.2012, 00:24
Интересующийся
Отправить личное сообщение для asdasd Посмотреть профиль Найти все сообщения от asdasd
 
Регистрация: 05.01.2011
Сообщений: 14

Запретить вызов функции более 1 раза в секунду
Как в Javascript запретить вызов функции более 1 раза в секунду...
Ответить с цитированием
  #2 (permalink)  
Старый 29.03.2012, 08:37
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

setInterval(function () { 
// код ф-ии...
},1000)
__________________
оляля, ололо
Ответить с цитированием
  #3 (permalink)  
Старый 29.03.2012, 10:16
Интересующийся
Отправить личное сообщение для asdasd Посмотреть профиль Найти все сообщения от asdasd
 
Регистрация: 05.01.2011
Сообщений: 14

Пробую вот так..не работает..

<input type='submit' onClick="setInterval(alert('прошла 3 сек'),3000)" />
Ответить с цитированием
  #4 (permalink)  
Старый 29.03.2012, 10:47
Server
Отправить личное сообщение для Rootpassword Посмотреть профиль Найти все сообщения от Rootpassword
 
Регистрация: 26.09.2011
Сообщений: 252

Любая функция в js-это фактически объект, т.е. допускает присваивание свойствам. Просто функции присваивайте, когда ее запускали, и сравнивайте внутри - если слишком быстро, выходим сразу.
Пример
function aaa(){
if(arguments.callee.last_run){
alert('My last run='+arguments.callee.last_run);
}else{
alert('First run');
}
arguments.callee.last_run=new Date();

return true;
}
aaa();
setInterval(aaa,10000);
Ответить с цитированием
  #5 (permalink)  
Старый 29.03.2012, 11:17
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

бр....
что это? Зачем?
<script>
setInterval(function () {
alert('прошло 3 секунды')
},3000)
</script>
__________________
оляля, ололо
Ответить с цитированием
  #6 (permalink)  
Старый 29.03.2012, 11:39
Server
Отправить личное сообщение для Rootpassword Посмотреть профиль Найти все сообщения от Rootpassword
 
Регистрация: 26.09.2011
Сообщений: 252

И где тут запрет вызова??????
Я так понял, человек хочет, что бы слишком быстро не кликали на input
Ответить с цитированием
  #7 (permalink)  
Старый 29.03.2012, 12:27
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

в библиотеках бывают подобные методы,
например в undersore
http://documentcloud.github.com/underscore/#throttle

<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script>  
	function x() {
	  console.log(1);
	}
	var y = _.throttle(x, 1000); // x будет вызываться не чаще одного раза в секунду
	setInterval(y, 100); // вызываем y десять раз в секунду
</script>

Последний раз редактировалось Pavel M., 29.03.2012 в 12:29.
Ответить с цитированием
  #8 (permalink)  
Старый 29.03.2012, 12:59
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Так ТС не описал тему, я думал у ему задержку надо сделать..
__________________
оляля, ололо
Ответить с цитированием
  #9 (permalink)  
Старый 29.03.2012, 13:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

asdasd,
Вариант...для наглядности время запрета увеличено до 10 сек.
<!DOCTYPE html>
<html >
<head>
  <title></title>
</head>
<body>
<script type="text/javascript">
var stop;
function foo()  //ваша функция
{
  alert(1)
}

function go(foo) {
    stop || (stop = !0, window.setTimeout("stop=!1", 10E3),foo());
};
</script>
<input type="button" name="" value="go" onclick="go(foo)" />
</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 29.03.2012, 13:58
Интересующийся
Отправить личное сообщение для asdasd Посмотреть профиль Найти все сообщения от asdasd
 
Регистрация: 05.01.2011
Сообщений: 14

всем спасибо!! сделал)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двойной вызов функции Tmin10 jQuery 8 08.12.2011 15:19
Вызов функции (Sandr) AJAX и COMET 12 16.03.2011 10:43
вызов функции из функции sharp_007 Общие вопросы Javascript 2 03.04.2010 21:13
Вызов функции из другой функции.. ?? glutton Общие вопросы Javascript 3 21.08.2009 22:33
Вызов функции каждую секунду. can2zia jQuery 8 14.08.2009 18:41