Thank you.

Yes, I just want to send 1000 requests simultaneously to test.

And finally I find out the root cause is plugin: Firebug!

After it's disabled totally in the Add-ons management dialog , it's ok
now.

BTW:
1:
         I tried to unset the responseText property, but it seems read-
only, so I have to use abort().

2:
         Now I'm doing the same test on safari 3.2.2, again, it does
not release anything, I'm trying to figure it out.


On Feb 23, 8:37 pm, "T.J. Crowder" <[email protected]> wrote:
> Hi,
>
> You do realize that that code creates 1,000 *overlapping* requests to
> your server, right? :-)  Ajax.Request is asynchronous by default.
>
> Another thing to remember is that JavaScript is a garbage-collected
> language; GC doesn't necessarily happen right away, when and how is
> implementation-dependent.
>
> And finally:  If your goal is to release the string referenced via
> transport.responseText, rather than relying on abort() to do it (which
> it may or may not), you could always, you know, do it:  t.responseText
> = undefined.  Of course, if nothing is referencing the request for any
> length of time (and nothing in your first quoted code is, AFAICS), all
> of the constituent parts are eligible for GC right away anyway...
>
> FWIW,
> --
> T.J. Crowder
> tj / crowder software / com
> Independent Software Engineer, consulting services available
>
> On Feb 23, 10:47 am, outersky <[email protected]> wrote:
>
> > Hi, all,
> > I just run the following code for 1000 times, and Firefox used 600M
> > memory.
>
> > for(var i=0; i<1000; i++){
> >     new Ajax.Request('download.jsp?r='+Math.random(), {
> >                         method:'post',
> >                         parameters: "length=102400"
> >                         });
>
> > }
>
> > here download.jsp will return a simple json struct like this:
>
> > { 'content': 'AAAAAAAAAAA...'}
>
> > where content is a string of length 102400.
>
> > when I turn on firebug, I find every transport has a responseText
> > property , which contains the large string object,
> > then I think  I should clean the responseText, so I change it to this:
>
> >    new Ajax.Request('download.jsp?r='+Math.random(), {
> >                         method:'post',
> >                         parameters: "length=102400",
> >                         onSuccess: function(t){ t.transport.abort
> > (); }
> >                         });
>
> > In firebug, I found transport.responseText is cleared. but firefox
> > still uses 600M  memory .
>
> > why ? and how to fix it?
>
> > Thank you very much !
>
> > Outersky
> > 2009-02-23
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to