Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

javascript, birden fazla ayni classin instance'i ve timeout


Öne çıkan mesajlar

Mesaj tarihi:
classim var instance'larim var, her obje periyodik olarak bir sey cagiracak
kendi schedulerimi yazmam istedigim bir cozum degil, hayir


_abc.prototype.fun=function()
{
var _this=this;
..
this.timeouthandle=setTimeout(function(){_this.fun()},1000);
}

<loop, donuyor birkac kez>
{
instance=new _abc(); //sorun burada degil, dogru obje aliyorum
...
_abc.instarray.push(instance); //gc olayi
...
instance.fun();
}


settimeout contexti degisiyor ondan java c++ gibi bir dildeki gibi metod cagrisi yapilmiyor ok onu anladim
_this=blabla diyerek _this.fun'in icine girecek olan this'in refere ettigi sey olarak objenin kendisi yapin diyor stackoverflowdaki onyuzmilyon sayfada, yapiyorum

sorun su :

_abc classindan birkac instance var
instance.fun()'lar bir kere, iclerindeki timeout da bir kez daha cagiriyor hepsini, firebug ile bakiyorum
sonra genelde en sonuncusu olmak uzere tum cagrilar ona gidiyor, diger objelere hic dusmuyor

firebug yavaslatiyor meydan son instance'a kaliyor diye bir durum yok, iki browserda debugger olmadan da gordugum davranis bu

yok mu bunun oluru ?
jquery'de kolay yolu varsa o da olur

edit :

unuttum, parametreli timeout da kullansam sonuc ayni.
Mesaj tarihi:
editledim

loopun icinde birkac obje olusuyor
objeler ayni classtan
objelerin yaptigi cagri kendini timeout ile tekrar cagiran turden
sirasi dert degil
Mesaj tarihi:
Valla dikkatli okumadim isten gucten ama js'de instance olayi biraz daha farkli. Hersey object bi kere. Fonksiyonlarin kendisi ve veri tipleri dahil. Mesela "hede" esasen String() objesinden turemis bisey ve sen gidip String()'i extend ettiginde daha once yarattigin string'lerin hepsinde yeni ekledigin ozellige sahi oluyosun.

Bu kadarini anlatip kaciyorum. heh
Mesaj tarihi:
hah onu diyecektim

yoketmek derken referans kayboldugu icin gc topluyor diyorsan class variable olan bir arraya ekliyorum
firebug'dan kurcalayinca yokolmus gozukmuyorlar, yerinde hepsi

said:
Valla dikkatli okumadim isten gucten ama js'de instance olayi biraz daha farkli. Hersey object bi kere. Fonksiyonlarin kendisi ve veri tipleri dahil. Mesela "hede" esasen String() objesinden turemis bisey ve sen gidip String()'i extend ettiginde daha once yarattigin string'lerin hepsinde yeni ekledigin ozellige sahi oluyosun.


ha yok sorun fonksiyonun contexti gibi daha ziyade
kim kimin metodu belli degil
Mesaj tarihi:
loop icinde tum objelere id property si ekle bakalim
en sonunda hepsi ayni id mi var yoksa farklimi

buyuk olasilikla sen assign ederken hepsini son objeyi point ediyo memoryde
Mesaj tarihi:
ok, bi dk
baska workaround denedim olmadi, neyse :

http://pastebin.com/m3CSZwS4

tek instance olan objelerde stackoverflowdan gordugum kadariyla _this=this hackinin calismasi lazim

_cursor classi baska dosyada da o tipten obje yerine herhangi bir sey gelebilir, onunla alakali koda gelemiyor daha browser,
sayi vs girip cursorla alakali seyleri kaldirinca de ayni sey, diger classla ilgisi yok sorunun
×
×
  • Yeni Oluştur...