Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 3.253 pregleda

Najnovija ↓

Jquery ajax request troši memoriju 08.09.2010. u 16:27 · pre 196 meseci #1
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!
Re: Jquery ajax request troši memoriju 08.09.2010. u 19:27 · pre 196 meseci #2
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.
Re: Jquery ajax request troši memoriju 15.09.2010. u 10:02 · pre 196 meseci #3
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!
Re: Jquery ajax request troši memoriju 18.09.2010. u 14:27 · pre 196 meseci #4
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.
Potpis
:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
Re: Jquery ajax request troši memoriju 22.09.2010. u 14:37 · pre 196 meseci #5
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!
Re: Jquery ajax request troši memoriju 22.09.2010. u 16:42 · pre 196 meseci #6
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.
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Jquery ajax request troši memoriju 23.09.2010. u 08:56 · pre 196 meseci #7
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!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme