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


Fly

Öne çıkan mesajlar

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.
Link to comment
Sosyal ağlarda paylaş

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
Link to comment
Sosyal ağlarda paylaş

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
Link to comment
Sosyal ağlarda paylaş

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
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...