1. JavaScript / Говнокод #3807

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    function repeattimer(functionname, looptime){
    	eval(functionname+"();");
    	setTimeout("repeattimer(\""+functionname+"\", "+looptime+");", looptime);
    }

    Не знаю насчёт того, ГК это или нет, но я бы сделал совсем не таким способом.

    Запостил: XyHb, 28 Июля 2010

    Комментарии (6) RSS

    • есть же setInterval
      Ответить
      • теперь мы знаем, как работает setInterval
        Ответить
      • С setInterval будет выполнение через фиксированные (ну, относительно) интервалы времени, а с setTimeout будут фиксированные паузы между выполнениями. И разница будет тем заметнее, чем медленнее код. Так что в этом автора еще можно понять.
        Наглядно:
        setInterval: +++||+++||+++
        setTimeout: +++|||||+++|||||+++
        (код выполняется 3 единицы времени, пауза 5 единиц)
        Ответить
        • следовательно, можем получить что следующий код начнет выполняться еще до окончания предыдущего
          Ответить
          • Нет, js однопоточный. Ф-ция поставится в очередь и выполнится как только появится возможность.
            Ответить
    • Больше eval()в, хороших и разных!
      Ответить

    Добавить комментарий