/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Frigivelse af hukommelse ved document.writ~
Fra : Rene


Dato : 31-01-01 14:20

Hejsa

Jeg fandt ud af at man kan lave en <SPAN> i netscape og så ændre
indholdet uden at reloade siden. Fx. hvis man skal lave et banner med
noget rullende tekst. Det er jo temmelig smart men det virker som om
netscape har et problem med at frigive noget hukommelse.

Følgene javascript:

document.banner.document.open();
document.banner.document.write(str);
document.banner.document.close();

ændrer indholdet at denne SPAN:

<SPAN ID="banner" STYLE="position: absolute;">
</SPAN>

Det virker også helt fint!! Problemet er bare at hvis jeg kører det
javascript en gang pr sekund så kan jeg se på min process manager at
Netscape æder mere og mere af min ram for hvor gang javasript koden
bliver kørt. Det virker ikke som om den ikke frigiver hukommelsen igen.
Er det rigtigt eller har den styr på hvad den laver?

Hvis jeg satte 10 Netscape vinduer til at køre javascript koden i et
døgn eller to ville det så gå fuldstændig galt??

Jeg kører Netscape 4.73 under Linux.

Mvh
Rene

 
 
Allan Vebel (31-01-2001)
Kommentar
Fra : Allan Vebel


Dato : 31-01-01 16:39

Rene <renej@post8.tele.dk> skrev:
>
> Netscape æder mere og mere af min ram for
> hvor gang javasript koden bliver kørt. Det virker
> ikke som om den ikke frigiver hukommelsen igen.

Det kunne jeg da godt tænke mig at analysere på i andre browsere under
Windows. Har du et link til din side så vi kan se det i funktion?

--
Allan Vebel
allan@vebel.dk
www.vebel.dk
Fakta ophører ikke med at eksistere, fordi man ignorerer dem.





Rene (31-01-2001)
Kommentar
Fra : Rene


Dato : 31-01-01 18:28

Hejsa

> Det kunne jeg da godt tænke mig at analysere på i andre browsere under
> Windows. Har du et link til din side så vi kan se det i funktion?

Det jeg sad og arbejdede på var ikke lige til at vise men jeg har lavet
et testdokument der demonstrerer det. Det burde virke både under
Netscape og IE men andre browsere virker nok ikke lige.

http://home8.inet.tele.dk/renej/writetest.html

Før jeg åbnede denne fil var data området der hører til netscape
processen på 5188 Kb. Efter programmet havde lavet write() ca. 1000
gange var data området pludselig 11868 Kb.

Så skulle man tro at når man lukkede netscape vinduet(mens man har et
andet tomt vindue så hele netscape ikke lukker) at den så frigir det
meste af de 11868 Kb men det gør den altså heller ikke. Ikke før
netscape lukkes helt.

Mvh
Rene

Claus Schmidt (01-02-2001)
Kommentar
Fra : Claus Schmidt


Dato : 01-02-01 00:45

"Rene" skrev:

> Før jeg åbnede denne fil var data området der hører til netscape
> processen på 5188 Kb. Efter programmet havde lavet write() ca. 1000
> gange var data området pludselig 11868 Kb.

Jeg er ikke ekspert i Netscapes hukom-
melseshåndtering, men jeg synes
egentlig ikke det er så underligt.

Det er klart at dataområdet vokser når du
bliver ved med at fylde data ind i dit span.

> Så skulle man tro at når man lukkede netscape vinduet(mens man har et
> andet tomt vindue så hele netscape ikke lukker) at den så frigir

Data gemmes i browseren. Det er
derfor du kan udveksle informationer
mellem forskellige vinduer.

Når du har skrevet 1000 gange til
et span, så ligger de 1000 tekster
åbenbart i samme span endnu,
indtil browseren lukkes.

Interessant: så må det jo være
muligt at hente værdier fra dette
vindue efter det er lukket ??


Jeg læste en gang et sted en sætning:
.........................
a JavaScript array can only grow - it hasn't
got the ability to shrink. So keep your arrays
as small as possible [1]
.........................
- den er meget god at have i baghovedet
til sådan nogle ting.


I dette tilfælde må browseren jo så
opfatte dit span som en array, som
er værd at beholde indholdet af.

Jeg er ikke sikker på om dette er
den rigtige forklaring, men det
virker ikke usandsynligt.


[1] Voodo's Introduction to Javascript, ch.6:
http://rummelplatz.uni-mannheim.de/~skoch/js/part6/part6.htm#arrays
-også udmærket som reference.


--
[claus]



Jonathan Stein (01-02-2001)
Kommentar
Fra : Jonathan Stein


Dato : 01-02-01 20:44

Rene wrote:

> Så skulle man tro at når man lukkede netscape vinduet(mens man har et
> andet tomt vindue så hele netscape ikke lukker) at den så frigir det
> meste af de 11868 Kb men det gør den altså heller ikke. Ikke før
> netscape lukkes helt.

Det jo være Netscape først kører garbage collection, når der er brug for
det. Kun et gæt.

M.v.h.

Jonathan





Søg
Reklame
Statistik
Spørgsmål : 177555
Tips : 31968
Nyheder : 719565
Indlæg : 6408859
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste