Solved

Firefox 2.0.0.14 Memory Leak when making any AJAX calls

Posted on 2008-06-10
5
595 Views
Last Modified: 2013-12-07
Very simply, if you continue to make AJAX calls in FireFox, and watch the memory usage in task manager, it constantly grows and if left over night may crash the browser.

I need the constant polling because we are monitoring data that needs to constantly be updating the screen.

Does anyone know how to work around or fix this memory leak?

Here's a simple page doing nothing but AJAX requests in an infinite loop (you can see the request using FireBug or some other http viewer)

http://www.cyberena.com/Production/ajaxtest/jqcall.html

0
Comment
Question by:cyberena
  • 3
  • 2
5 Comments
 
LVL 18

Expert Comment

by:ChetOS82
ID: 21753315
I don't think this is a memory leak in Firefox, because it jQuery uses Firefox's XmlHttpRequest object.  I have been using that object for years and (when used right) never had a problem.

What happens if you point your success callback to a function other than the calling function?  If you need it to process in a loop, then have the callback function call the "theCall" function again.

Also, jQuery provides $.get() which might be better suited for your needs.
0
 

Author Comment

by:cyberena
ID: 21753758
Hello,

I have used JQuery and Prototype and my own engine I wrote before those open sources even existed for AJAX calls and all three produce the same results no  matter if the callback function is hitting itself or another function.

A possible reason you have not seen it is perhaps you are not polling data as often as I am in the example I provided which is every 50ms plus or minas for over night or longer periods of time since the application I am writing monitors robots.

I believe if you try to do an infinite request loop, and watch the memory in task manager, you can also reproduce the problem in FF 2.

It seems FF 3 beta has resolved this problem, and no leak in IE either.  But I am hoping to find a workaround for now for FF 2 since many people use FF2 today.
0
 

Author Comment

by:cyberena
ID: 21753770
One more thing to note, the memory leak is apparent after just a few minutes of inifinite looping, you dont have to wait overnight to see the memory grow.
0
 
LVL 18

Accepted Solution

by:
ChetOS82 earned 500 total points
ID: 21753909
I figured out the problem (on my machine at least).  I turned off the XMLHttpRequest logging in Firebug (by going to the Console tab, clicking on Options and unselecting "Show XMLHttpRequest").  I restarted Firefox and monitored the memory usage.  It held steady (up or down <1K).  I verified that requests were being made using WireShark.

I then opened Firebug back up and asked it to show the XMLHttpRequests and Firefox's memory started increasing.
0
 

Author Closing Comment

by:cyberena
ID: 31465807
Thank you, unfortunately all of my systems I dev on use FireBug, I never thought of the memory increase being due to FireBugs logging but it makes sense.  
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Select only the top record in a left join 13 34
Scroll 5 news at a time. 4 25
asp.net mvc5 6 14
Show tab when enter div and change underline color 3 22
SSL stands for “Secure Sockets Layer” and an SSL certificate is a critical component to keeping your website safe, secured, and compliant. Any ecommerce website must have an SSL certificate to ensure the safe handling of sensitive information like…
Color can increase conversions, create feelings of warmth or even incite people to get behind a cause. If you want your website to really impact site visitors, then it is vital to consider the impact color has on them.
This tutorial walks through the best practices in adding a local business to Google Maps including how to properly search for duplicates, marker placement, and inputing business details. Login to your Google Account, then search for "Google Mapmaker…
The viewer will learn how to dynamically set the form action using jQuery.

786 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question