PDA

Просмотр полной версии : Временной таймер на цикле.


keep
06.11.2009, 19:29
Как лучше сделать цикл дабы он с переадичностью дёргал переменную из PHP. пытался сделать сам либо цикл пробегает один раз, либо эксплорер вежливо предупреждает, что этот цикл может привести к зависанмю. Пытался предотвратить это штукой под название timer, но без успешно =(

TeNoR
06.11.2009, 19:54
setInterval(); в помощь

keep
06.11.2009, 20:34
я тоже так подумал, но видимо дело в том, что setInterval(); уже используеться и это приводит к странным последствиям:


setInterval( function(){

var my_lv:LoadVars = new LoadVars();
my_lv.onLoad = function(success:Boolean) {
if (success) {
for (var variable:String in this)
{
trace(variable + ': ' + this[variable]);
// где variable - имя переменной
// this[variable] - ее значение
}
} else {
trace("Ошибка в загрузке / разборе результирующей строки.");
}
};
my_lv.load("http://vizplast.ru/teg.php");


my_lv.onLoad = function(success:Boolean) {
if (success) {
for (var variable:String in this)
{
if(variable != 'onLoad')
{
//прокрутка

variable = variable.substr(0, variable.length - 1); //удаляем последний знак.

var t_str = variable;

changeStr1 = function() {
t_str = (t_str.concat(t_str.substr(0,1))).substr(1);
ta.text = t_str;
}

setInterval(changeStr1,200);
//---
}

}
}
}
}, 5000 );

TeNoR
06.11.2009, 21:07
ну конечно же, из-за внутреннего setInterval'a, т.е. сам алгоритм:

setInterval( function(){

changeStr1 = function() {

}

setInterval(changeStr1,200);


}, 5000);

вызов setInterval(changeStr1,200); будет суммироваться через каждые 5000 миллисекунд.

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


Меняй алгоритм.