Christian Hansen wrote:
> Stig Johansen wrote:
>> Det er mere et generelt spørgsmål, men vi kan tage udgangspunkt i AJAX
>> diskussionerne.
>>
>> Hvis jeg laver følgende:
>> var req;
>> req = new XMLHttpRequest();
>> ..... noget .....
>> req = new XMLHttpRequest();
>> .... noget .....
>>
>> Med nummer to, får den første XMLHttpRequest() ud af scope, men blive
>> memory ryddet op 'automagisk'.
>
> Ja. I javascript indeholder variable blot referencer til det enkelte
> object. Når du laver nr. 2 XMLHttpRequest bliver det første object
> utilgængeligt for javascriptet og så sørger javascriptmotorens garbage
> collection for at objectet slettes fra hukommelsen.
Ok, det lyder godt. Men er der nogen 'tidsmæssig' fordel ved at (forsøge at)
gennemtvinge GC'eren til at rydde op med 'req = null;'?
Jeg tænker mest på nogle uheldige serverside situationer med .NET's GC.
Det er sikkert ikke relevant 'clientside', men - nice to know.
> Der, hvor man kan komme i problemer med hensyn til memory leeks, er når
> man arbejder med closures - når man opretter en closure holder man et
> eller flere scopes i live, som ellers ville være samlet op af
> javascripts garbage collection.
closures? - søgte lidt på Google.
Det lyder lidt henad det 'sædvanlige' problem med circular references?
Suk - IE - tsk, tsk .....
Faldt over det her(Google):
<
http://64.233.183.104/search?q=cache:_URZHKSEX6AJ:jibbering.com/faq/faq_notes/closures.html+javascript+closure&hl=en&ct=clnk&cd=1>
<citat>
The Internet Explorer Memory Leak Problem
The Internet Explorer web browser (verified on versions 4 to 6 (6 is current
at the time of writing)) has a fault in its garbage collection system that
prevents it from garbage collecting ECMAScript and some host objects if
those host objects form part of a "circular" reference.
</citat>
Tak for du brugte tid på at oplyse mig.
--
Med venlig hilsen
Stig Johansen