![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2004
Адрес: Днепропетровск
Сообщений: 36
|
Я бы хотел загрузить функцию типа
function fun_name(){trace("shit");} setInterval(fun_name(), 100); А вопрос такой: "Почему эта хорошая функция выполняется всего 1 раз, а если мы далаем вот такую операцию setInterval(function(){trace("shit");}, 100); то все shit выкладывается в output так как и должно - 1 раз в 100 миллисекунд" Я слышал что разница между подходами очень большая, в чем она и как мне сделать правильно мой первый вариант.?" |
|
|||||
|
Регистрация: May 2004
Адрес: Днепропетровск
Сообщений: 36
|
Никто не знает? Странно...
|
|
|||||
|
у тебе обшибка:
вместо setInterval(fun_name(), 100); надо setInterval(fun_name, 100); |
|
|||||
|
Регистрация: May 2004
Адрес: Днепропетровск
Сообщений: 36
|
Вообще-то у меня функция должна получать переменные.
например fun_name($var1,$var1){trace(this);} setInterval(fun_name($var1,$var2), delay_time); Вот этот случай мне и интересен |
|
|||||
|
сделай функцию без параметров
дергай нужные переменные из тела функции |
|
|||||
|
Ну-нууу, зачем же так жестко? setInterval в качестве аргументов с индексом (пусть первый аргумент - 0) >=2 получает параметры функции.
Т.е. setInterval(fun_name, 100, "First", "Second", "И т.п. ");Так мы передали функции три параметра.
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
|
|||||
|
Регистрация: May 2004
Адрес: Днепропетровск
Сообщений: 36
|
Спасибо - работает!
Все хорошее печально кончается - как после выполнения функции вырубить setInterval в этой же функции? в хелпе сказано: var intervalID; intervalID = setInterval( callback, 1000 ); // sometime later clearInterval( intervalID ); но мне это не подходит, нужно чтобы одна функция и останавливала и запускала себя. Или что-то в этом роде. Последний раз редактировалось AStrike; 21.08.2004 в 05:03. |
|
|||||
|
Ничего не понимаю. Если тебе надо вырубить/запустить интервал из функции - напиши код в самой функции и все. Или чего?
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
|
|||||
|
Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
|
Цитата:
зы: извини если путанно |
|
|||||
|
Ммм... Отрицать слова FreeLander-а не могу, но и не совсем согласен с ними, уж извини. Вообще setInterval из тела функции запустить можно - это будет работать. Но фишка в том, что придется все-таки функцию вручную один раз запустить, чтобы она заработала и активировала интервал.
function a(){ trace("!"); setInterval(a, 1000); } a(); Но тут есть минус - придется ставить условие на интервал, а то с каждой секундой будут создаваться все новые и новые счетчики. Ну, скажем, сделать переменную doOnce, и врубить ее после первого включения интервала.... Но ведь ето нафиг не нужно, по-моему. Заниматься рекурсией (кажется, так этот процесс называется?) приходится очень редко....
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
![]() |
Часовой пояс GMT +4, время: 01:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|