javascript утечка памяти
От: Igore Россия  
Дата: 10.04.09 06:20
Оценка:
Помогите разобраться, задача организовать бесконечный цикл для перерисовки расположения флэшки, сделано через div + position: absolute.

Все работает но вот в самом цикле возникает утечка памяти, пробовал и через setTimeout, и через setInterval, даже если в функции fly_move ничего не делать память отъедается. Как сделать чтобы память не утекала.

var inFunc = false;

function fly_move() {
   if (inFunc){
       return;
   }
   inFunc = true;
/*
   moveFlash();
*/
   inFunc = false;
   setTimeout('fly_move()', ttime);
}

if ('undefined' != typeof(fly_flash)){
   //clearInterval('fly_move()');
   //create_fly();
   setTimeout('fly_move()', ttime);
   //setInterval('fly_move()', ttime);
}
Re: javascript утечка памяти
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 10.04.09 06:45
Оценка:
Здравствуйте, Igore, Вы писали:

I>Помогите разобраться, задача организовать бесконечный цикл для перерисовки расположения флэшки, сделано через div + position: absolute.


I>Все работает но вот в самом цикле возникает утечка памяти, пробовал и через setTimeout, и через setInterval, даже если в функции fly_move ничего не делать память отъедается. Как сделать чтобы память не утекала.


I>
I>var inFunc = false;

I>function fly_move() {
I>   if (inFunc){
I>       return;
I>   }
I>   inFunc = true;
I>/*
I>   moveFlash();
I>*/
I>   inFunc = false;
I>   setTimeout('fly_move()', ttime);
I>}

I>if ('undefined' != typeof(fly_flash)){
I>   //clearInterval('fly_move()');
I>   //create_fly();
I>   setTimeout('fly_move()', ttime);
I>   //setInterval('fly_move()', ttime);
I>}
I>


Каждый раз когда вы пишете setTimeout('fly_move()', ttime) из строки 'fly_move()' создается функция, которая отъедает память.
Попробуйте вызывать так setTimeout(fly_move, ttime)
Re[2]: javascript утечка памяти
От: Igore Россия  
Дата: 13.04.09 07:17
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Каждый раз когда вы пишете setTimeout('fly_move()', ttime) из строки 'fly_move()' создается функция, которая отъедает память.

G>Попробуйте вызывать так setTimeout(fly_move, ttime)

Не помогло, утечка возникает только при малом таймауте, меньше 100. Делать таймаут большим не вариант, флэшка будет слишком медленно двигаться .
Re[3]: javascript утечка памяти
От: . Великобритания  
Дата: 13.04.09 14:46
Оценка:
Igore wrote:

> Не помогло, утечка возникает только при малом таймауте, меньше 100.

> Делать таймаут большим не вариант, флэшка будет слишком медленно двигаться .
Очевидно утечка в районе moveFlash. Приведённый код утечек иметь не должен.
А inFunc не особо полезен.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[4]: javascript утечка памяти
От: Igore Россия  
Дата: 14.04.09 08:09
Оценка:
Здравствуйте, ., Вы писали:

.>Igore wrote:


>> Не помогло, утечка возникает только при малом таймауте, меньше 100.

>> Делать таймаут большим не вариант, флэшка будет слишком медленно двигаться .
.>Очевидно утечка в районе moveFlash. Приведённый код утечек иметь не должен.
.>А inFunc не особо полезен.

Я сначала тоже так думал, пока не сделал функцию пустой, тот код что я привел не должен довать утечки, но дает. moveFlash пустой, просто часто вызывается, утечка где то внутри IE ttime = 40
Re[5]: javascript утечка памяти
От: . Великобритания  
Дата: 17.04.09 03:21
Оценка:
Igore wrote:

> Я сначала тоже так думал, пока не сделал функцию пустой, тот код что я

> привел не должен довать утечки, но дает. moveFlash пустой, просто часто
> вызывается, утечка где то внутри IE ttime = 40
Непонятно. Можешь привести привести минимальный целый html?
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.