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
-~----------~----~----~----~------~----~------~--~---