Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как вызывать функцию каждые 10 секунд 
:(
    Опции темы
Samotnik
Дата 22.2.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



САБЖ!!!
Как реализовать, чтобы  вызывалась постоянно функция каждые 10  секунд ?? 
PM MAIL   Вверх
bars80080
Дата 22.2.2008, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



а так что не получается
Код

function neck() {
...
setTimeout('neck()',10000);
}
neck();
?
PM MAIL WWW   Вверх
Samotnik
Дата 22.2.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



bars80080, не понимаю,  что-то  много  названий  neck()

PM MAIL   Вверх
v2v
Дата 22.2.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



рекурсия - дело тонкое smile


--------------------
PM   Вверх
Samotnik
Дата 22.2.2008, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Хорошо,  спросим по другому,..
Как  сделать, чтобы   эта  функция вызывалась  много раз  ???
Код

var textar = document.createElement("textarea");
    textar.setAttribute("rows", "5");
    textar.setAttribute("cols", "5");
    textar.setAttribute("id", "idd");
    this.baseElement.appendChild(textar);

    textar.onchange = function () {
            var interval = document.getElementById("idd").value;
            setTimeout(_this.refresh(), interval);
    };

PM MAIL   Вверх
Ghirik
Дата 22.2.2008, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Цитата

setInterval('функция', инервал в миллисекундах )


Поиск....

Это сообщение отредактировал(а) Ghirik - 22.2.2008, 18:08


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
Samotnik
Дата 22.2.2008, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Ghirik,  уже нашел, но все равно пасибо    smile 
PM MAIL   Вверх
Samotnik
Дата 22.2.2008, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Блин, кароче  что - то  нето,    вроде  сделал   но  все равно не работает как надо
Код

var textar = document.createElement("textarea");
    textar.setAttribute("rows", "5");
    textar.setAttribute("cols", "5");
    textar.setAttribute("id", "idd");
    this.baseElement.appendChild(textar);

    textar.onchange = function() {
        var interval = document.getElementById("idd").value;
        setInterval(_this.refresh(), interval);
    };

Т.е.  получается следующее:   юзер ввел число, клацнул куданить  функция выполнилась!   НО!   она не выполняется  с тем интервалом, который  задан !!
Мне кажется, это из-за того, что   onchange   ведь больше не происходит !!!    и значит ф-ция не вызывается   smile  smile 

PM MAIL   Вверх
Samotnik
Дата 22.2.2008, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Я что-ли  первый, кто с этим  столкнулся ???    Никто не знает решения, этой проблемы ??
Просто фишка в чем, в том, что    setInterval();  будет срабатывать только тогда, когда,  будет порисходить событие  onchange   т.е. это постоянно  нужно кликать и зменять  значение   textarea, чтобы  срабатывала функция!!!
А мне нужно, что бы само  по себе обновление происходило,  каждые  interval  секунд ! 
 smile 
PM MAIL   Вверх
Optimus
Дата 22.2.2008, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 1.9.2007

Репутация: нет
Всего: 14



Цитата(Samotnik @  22.2.2008,  19:19 Найти цитируемый пост)
setInterval();  будет срабатывать только тогда, когда,  будет порисходить событие  onchange

если бы это было так, то тогда зачем использовать setInterval(), можно было бы вызвать _this.refresh().

Цитата(Samotnik @  22.2.2008,  19:19 Найти цитируемый пост)
что бы само  по себе обновление происходило,  каждые  interval  секунд !

Функция setInterval() принимает интервал в миллисекундах,
а имя функции передается как строка
Код

 setInterval("_this.refresh()", interval * 1000);


Это сообщение отредактировал(а) Optimus - 22.2.2008, 22:26
--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
SelenIT
Дата 22.2.2008, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Цитата(Optimus @  22.2.2008,  21:01 Найти цитируемый пост)
имя функции передается как строка

Это неправильный подход - при таком синтаксисе каждый раз неявно вызывается eval. Лучше передавать именно как имя - без скобок в конце (если передавать со скобками, то получается, что функция вызывается сразу, а в таймер ставится ее результат).

Вот только насчет видимости _this из setInterval-а у меня некоторые сомнения...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
12341234
Дата 27.2.2008, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 27.2.2008

Репутация: нет
Всего: нет



Optimus,   пасибо, но так тоже  сожалению не работает  ((((
Делаю  вот так (по вашему)
Код

 var interval;
    var textar = document.createElement("textarea");
    textar.setAttribute("rows", "1");
    textar.setAttribute("cols", "1");
    textar.setAttribute("id", "idd");
    this.baseElement.appendChild(textar);

    textar.onblur = function() {
        interval = document.getElementById("idd").value;
setInterval(_this.refresh(), interval * 1000);
    };  

но,   функция  _this.refresh()  вызывается  только  ОДИН   раз ....    smile    А мне нужно, что бы она вызывалась постоянно, с переодичностью, той, которую введет пользователь !!
 smile 
PM MAIL   Вверх
Optimus
Дата 27.2.2008, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 1.9.2007

Репутация: нет
Всего: 14



Цитата(12341234 @  27.2.2008,  20:01 Найти цитируемый пост)
но,   функция  _this.refresh()  вызывается  только  ОДИН   раз 


Цитата(SelenIT @  22.2.2008,  22:44 Найти цитируемый пост)
передавать именно как имя - без скобок в конце (если передавать со скобками, то получается, что функция вызывается сразу, а в таймер ставится ее результат).


Код

  setInterval(_this.refresh, interval * 1000);

--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
Sardar
Дата 27.2.2008, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Неужели так сложно глянуть в конец этой страницы, вопрос не первый десяток раз решён, подробно.

setInterval(function() { _this.refresh()} , interval * 1000);


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
12341234
Дата 28.2.2008, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 27.2.2008

Репутация: нет
Всего: нет



Optimus,  пасибо, сделал  вот так 
Код

  var interval;
    var textar = document.createElement("textarea");
    textar.setAttribute("rows", "1");
    textar.setAttribute("cols", "5");
    textar.setAttribute("id", "idd");
    this.baseElement.appendChild(textar);

    textar.onblur = function() {
        interval = document.getElementById("idd").value;
         setInterval(_this.refresh, interval * 1000);
    };

Вообще нифига не работает (раньше  хоть один раз вызывалась,  а щас  ниразу)

Цитата(Sardar @  27.2.2008,  23:00 Найти цитируемый пост)
Неужели так сложно глянуть в конец этой страницы, вопрос не первый десяток раз решён, подробно.

Глядел,   делал,  но  не работет    smile

Добавлено через 5 минут и 20 секунд
Цитата(Sardar @  27.2.2008,  23:00 Найти цитируемый пост)
setInterval(function() { _this.refresh()} , interval * 1000);

а вот так работает  ИДИАЛЬНО !!! 
Пасибо  smile)))    Sardar,    а можете обьяснить, почему  нужно именно так писать ????
 smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0696 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.