Improve company productivity with a Business Account.Sign Up

x
?
Solved

Memory leaks with IE6 + Jquery 1.4.2 + JqueryUI 1.8.1

Posted on 2011-03-24
5
Medium Priority
?
354 Views
Last Modified: 2012-08-14
Dear Experts,

It seems we hit huge memory leaks with our web application, one request may cost 1-2M memory.

1.analysis with IEJSLeaksDetetor
 IEJSLeaksDetetor a.Refer to the document tree, it seems the JS files had been load repeatedly?

2.analysis with sIEve
 sIEve -memory usage sIEve 2
any suggestion?
thank you very much.
0
Comment
Question by:whbcn
  • 3
  • 2
5 Comments
 
LVL 13

Expert Comment

by:darren-w-
ID: 35206006
Hi,

You may have a infinite loop, need to analyse the source and isolate sections of it to identify what is causing the problem?

Darren
0
 

Author Comment

by:whbcn
ID: 35212791
I update the JqueryUI with the latest version(1.5.1 + 1.8.11), and use IEJSLeaksDetetor to analysis again, it seems every Dom with event caused memory leaks.

The IEJSLeaksDetetor  show most memory leaks caused by below code:

elem.attachEvent( "on" + type, eventHandle )
Jquery.js
if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
                              // Bind the global event handler to the element
                              if ( elem.addEventListener ) {
                                    elem.addEventListener( type, eventHandle, false );

                              } else if ( elem.attachEvent ) {
                                    elem.attachEvent( "on" + type, eventHandle );
                              }
                        }
0
 

Author Comment

by:whbcn
ID: 35213089
We just using Jquery in the very simple way. Mostly like :

$("#DB_editCollInfoBtn").click(function(){
   ......
}

We have not found a infinite loop yet.
Any other idea?  It seems that the events have not been unbind or removed.
0
 
LVL 13

Accepted Solution

by:
darren-w- earned 500 total points
ID: 35213575
Try running $("#DB_editCollInfoBtn") in a console (firebug/Chrome element inspector) and see what it brings back, in theory if its a id there should be only one item of this type, is this the case?

if not the id should be changed to a class and then look to using an each method to go through the items.

Another thing to look at is if the page is valid using this validator http://validator.w3.org/, copy the displayed source into it, as if this could be causing problems too...

Also validate the css using the css validator of the same site.

Darren
0
 

Author Comment

by:whbcn
ID: 35229785
In Chrome, it shows as below:
---------------------------------------------------------
top.right.document.getElementById("back")
HTMLButtonElement
----------------------------------------------------------
The application uses frame tag for a layout. the frame parts in "menu domain" and "the contents domain". even I just click the menu n "menu domain"(Response to "the contents domain"), the sIEve show leaks.
So is it some issue about the frame?
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

I've been trying to accomplish this for a while and it just struck me yesterday how to accomplish this task. I have done searches all over the internet looking for ways to email pages from my applications and finally I have done it!!! Every single s…
AngularJS web development a very simple procedure. So, to put it, in short, AngularJS’ stand out features are – Two-way data binding, MVC structure, directives, templates, dependency injections and testing.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

579 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