Отложенные действия
Приветствую всех.
Только начал заниматься изучением javascript, поэтому заранее прошу сильно не пинать. :) Задался таким вот вопросом. Вроде примитивный а реализовать не могу. Назовем его "Индикатор загрузки" Нужно реализовать индикатор который бы показывал сначала одну точку, короткий промежуток времени, две точки, короткий промежуток времени, три точки, короткий промежуток времени, одна точка... итд Скрипт я представляю себе примерно как то так: var dotted; dotted = [".", "..", "..."]; function dottA() { var i; for(i=0; i<3; i++) { console.log(dotted[i]); if(i===2){dottA();} } } dottA(); но так вывод получается оч быстрым. Как отложить действие вывода на тот самый секундный интервал? |
http://learn.javascript.ru/settimeout-setinterval
И зачем ты используешь строгое сравнение, когда заведомо известно, что переменная будет числом? |
|
Спасибо, я понимаю что нужно применить сетТаймаут, только вот не пойму как
var dotted; dotted = [".", "..", "..."]; function dottA() { var i; for(i=0; i<3; i++) { setTimeout(console.log(dotted[i]), 1000); if(i==2){dottA();} } } dottA(); так получается что вывод каждой строки откладывается на 1 секунду, но по сути между выводом строк интервал остаётся тоже. |
Цитата:
<span id="indicator"></span> <script> (function(maxDots) { var indicator = document.getElementById("indicator"); var step = 0; setInterval(function() { indicator.innerHTML = (new Array((step++ % maxDots) + 2)).join("*"); }, 1000); })(3); </script> |
Огромное спасибо, свою ошибку понял. В мыслях даже не было что так сильно можно упросить код. Безсомнений плюсану
|
Цитата:
|
Очевидно же, что задача в учебных целях поставлена.
|
Вот как значит теперь учат. Дают задание запрограммировать будильник - отложенное действие, а подразумевают анимацию хода стрелок будильника - повторяющееся действие.
И не callback та самая функция, ее даже может не быть https://developer.mozilla.org/en-US/...ers.setTimeout |
Часовой пояс GMT +3, время: 05:37. |