Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Jquery ajax request troši memoriju

[es] :: Javascript i AJAX :: Jquery ajax request troši memoriju

[ Pregleda: 1913 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ilidan13

Član broj: 18118
Poruke: 48
*.com.



Profil

icon Jquery ajax request troši memoriju08.09.2010. u 15:27 - pre 106 meseci
Pozdrav,

imam slijedeći problem: na internoj web aplikaciji koju izrađujem koristim dosta ajax-a, točnije jquery $.ajax i $.getjson. Problem je u tome što izgleda da Internet Explorer 8 ne oslobađa memoriju nakon tih requesta. Tako da mi memorija koju internet explorer koristi konstantno raste, dok se na kraju aplikacija ne zablokira.

Na internetu sam vidio neka moguća riješenja. Na jquery stranici sam pronašao i navodno riješenje, međutim nisam siguran kako da ga ispravno upotrijebim http://dev.jquery.com/ticket/6242 , pa ako neko ima ideju bilo bi super.

Unaprijed zahvaljujem,
Pozdrav!
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Humanity d.o.o.
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-8.sezampro.rs.

Sajt: www.nikolaposa.in.rs


+33 Profil

icon Re: Jquery ajax request troši memoriju08.09.2010. u 18:27 - pre 106 meseci
Rešenje predloženo na tom linku podazumeva edit-ovanje kôda same jQuery biblioteke. Koju verziju jQuery-ja koristiš? Baci pogled i na ovu diskusiju na StackOverflow-u, tu je prijavljen isti problem, a vidim da ima par predloga za njegovo rešavanje.
 
Odgovor na temu

Ilidan13

Član broj: 18118
Poruke: 48
*.com.



Profil

icon Re: Jquery ajax request troši memoriju15.09.2010. u 09:02 - pre 105 meseci
Pogledao sam te diskusije. Uglavnom, skinuo sam novu (kompletnu) verziju jquery-a, i dodao sam kod predložen u diskusijama u jquery datoteku:

// Stop memory leaks
if ( s.async ) {
xhr.onreadystatechange = null;
xhr.abort = null;
xhr = null;
}

Poboljšanje je vidljivo, međutim i dalje mi memorija raste kako se aplikacija koristi. Valjda ću pronaći još neki način da se oslobodi ta memorija.
Ako neko ima ideje, neka slobodno iznese.

Pozdrav!
 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: Jquery ajax request troši memoriju18.09.2010. u 13:27 - pre 105 meseci
Postoji li mogucnost da memory leak uzrokuje nesto drugo? Recimo unistavanje objekata brisanjem njihovog sadrzaja ali ne unbind-ovanja evenata koji su im dodjeljeni? To IE ne odradjuje bas najbolje.
:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

Ilidan13

Član broj: 18118
Poruke: 48
*.com.



Profil

icon Re: Jquery ajax request troši memoriju22.09.2010. u 13:37 - pre 105 meseci
Moguće je naravno, ali javascript koji ja koristim i nije nešto komplikovan. Sastoji se od toga da preko jquery $ajax-a pozovem php skriptu, koja vrati html sa listom (<li><img/></li>) slika. Taj html onda stavim u innerHTML određenog diva. Kada korisnik npr. klikne OK, ponovno se poziva funkcija sa $ajax-om, te se nove slike stave u innerHTML.

Pokušao sam koristiti i prototype umjesto jquery-a, ali ista stvar. Memoriju koja se zauzme prilikom prikaza slika se ne oslobađa nakon što ih zamijenim sa novim slikama. :-(. Dešava se isto i sa ne-slikovnim sadržajem. Ali slike memorijski zahtjevnije pa su mi one najveća briga.

Proučavao sam na internetu malo problem cirkularnih referenci, i closure-a, ali moj javascript je relativno jednostavan te mi se čini da takvih stvari nema.

Pozdrav!
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Jquery ajax request troši memoriju22.09.2010. u 15:42 - pre 105 meseci
ako vec koristis jquery umesto da overwritujes innerHTML svaki put uradi prvo empty() on bi trebao da se pobrine da nema memory leakova.

takodje bih ti savetovao da izbegnes ubacivanje novih elemenata putem innerHTML-a, ja sam za slicni scenario napravio neki svoj micro-template engine u javascriptu i sa serverom sam komunicirao pomocu JSON-a (tj server je vracao podatke u JSON formatu koje ja prosledim templejtu koji kreira potrebnu strukturu koristeci create/append-Element funkcije).

danas nema potrebe da pravis nesto svoje jer ima nekoliko odlicnih template pluginova za jquery, pre svega jquery-tmpl koji je i "oficijelni" template plugin.
 
Odgovor na temu

Ilidan13

Član broj: 18118
Poruke: 48
*.com.



Profil

icon Re: Jquery ajax request troši memoriju23.09.2010. u 07:56 - pre 105 meseci
Izgleda da je ipak problem u IE8. Jučer sam malo eksperimentirao, i dohvaćao slike ne preko jquery-a, nego "ručno" napravljenog xmlHttpRequesta, i ista stvar.
InnerHTML sam overwrite-ao, znači svaki put dohvatim HTML objekt preko document.getElementById...., i tada njegovom innerHTML-u dodijelim novi sadržaj.
Pokušao sam zatim sa IE7, i tada nije bilo nekih memory leak-ova. Čudno, ali eto. Tako da ću eventualno preći na IE7.

Pozdrav!
 
Odgovor na temu

[es] :: Javascript i AJAX :: Jquery ajax request troši memoriju

[ Pregleda: 1913 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.