I am developing my first Ext app of any consequence and have encountered the dreaded:
Originally Posted by Internet Explorer
- Windows XP Professional SP2
- 1 GB RAM
- Internet Explorer 6.0
- Ext 2.0 Beta
Security restrictions won't allow me to post my code, so I'd have to create a completely separate, generic app to demonstrate the problem--which may be what I end up doing anyway. For now, I post what I know at this point in case this is a known issue, has a known solution, or is something one of you wants to dive into. One thing is for sure, if not resolved, it will be a show-stopper for using Ext with this app. I do NOT want that! Don't take my Ext away!
Before you all post to tell me "I'm not having any problems" , understand my app is one that if a memory leak exists, it's probably going to find it.
My app's architecture
The app is a grid, but specifically, it is a GridPanel using the GridFilter 'filters' plugin. The grid also uses a GroupingView to provide row text color styling. The grid's store is a GroupingStore using a JsonReader. My ColumnModel has 5 simple columns with one simple custom renderer.
I am using a Viewport to contain my grid to provide auto-resizing to fill the browser window.
I am using a TaskMgr to load the store every 5 seconds. Obviously it is this recurring processing that is somehow leaking memory or causing some kind of script slowness.
I have one theory that I am investigating, but I'm sure one of you gurus can just tell me. When I use the TaskMgr to load a store every 5 seconds, does that literally occur every 5 seconds regardless of whether the previous request has finished?
In my current, non-Ext AJAX app, I load my table "every 5 seconds", but really, I call the asynchronous load, then on return of that load, I set the table to reload in 5 seconds. So, if for some reason, the server or database is slow and the request takes 15 seconds to return, my client's app simply waits, gets the data, then sets to reload in another 5 seconds.
This issue takes many hours to appear. If I just sit and watch memory and CPU, I don't notice a problem. My theory is that perhaps over enough time, I end up with several of these asynchronous requests loading and thus updating the grid simultaneously? It's something for me to start looking at anyway.