Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   как остановить функцию (https://javascript.ru/forum/dom-window/21426-kak-ostanovit-funkciyu.html)

Александр х@к 08.09.2011 19:51

как остановить функцию
 
<!DOCTYPE HTML>
  <html>
  <body>
  <p id="foo">0</p> 
  <script>
 
    function init(element) {  
        if(document.getElementById(element) !== null) {
            foo();
        }
        else {
            setTimeout(function() {
                init(element);
            }, 0);
        }
    }
    
  function foo() {
      var i = 0;
      return function() {
          if (i++ < 25) {
              document.getElementById('foo').innerHTML = Math.random();
          }
          else i = 0;
          setTimeout(arguments.callee, 100);
      }();
  }
   
  init('foo');
  </script>
    
  </body>
  </html>


код сам выводит любые числа, как остановить код на 10 секунде и чтоб результат остался(т.е. дальше скрипт не выводил)

"А есть ли возможность вбить несколько чисел и чтоб он сам их перебирал и через 10 сек выполнения(перебирания) код остановился и результат оставил на экране?

crayday 09.09.2011 00:03

Например, вот так:
function foo() {
      var i = 0;
      var time = 0;
      var time_limit = 10*1000; // 10 секунд
      var interval = 100;
      return function() {
          if (i++ < 25) {
              document.getElementById('foo').innerHTML = Math.random();
          }
          else i = 0;
          if(time < time_limit) setTimeout(arguments.callee, interval);
          time+=interval;
      }();
  }

crayday 09.09.2011 00:10

Какой вот в этом смысл, если не секрет? Создать эффект тормознутости?
if (i++ < 25) {
     document.getElementById('foo').innerHTML = Math.random();
}
else i = 0;

Какой-то 25-ый кадр )
Зачем функцию в функции возвращать тоже непонятно.

Александр х@к 10.09.2011 22:07

не-а 26 кадр))

Александр х@к 11.09.2011 14:19

оно

А есть ли возможность вбить несколько чисел и чтоб он сам их перебирал и через 10 сек выполнения(перебирания) код остановился и результат оставил на экране?

melky 11.09.2011 16:58

да, можно

Александр х@к 11.09.2011 17:11

а как??

melky 11.09.2011 18:02

ручками дописать

:)

Александр х@к 11.09.2011 18:22

а в реале??


Часовой пояс GMT +3, время: 11:54.