http://67.199.33.151/db/


We've been working on this site for a month, using jquery extensively to 
create a sort of templating system for views into a sql database via a 
web service.  AJAX calls are made on loading of the page to populate 
various templates and lists.

It's been working very nicely in firefox, and even Safari after some 
funkiness, but recently we've started to see IE crash randomly.  This 
behavior is entirely reproducible and seems to occur around the setup / 
teardown of a bastardized version of thickbox I hacked together.

If you hit the URL included above you'll see the layout with our data 
starred out at the webservice layer.

All our custom code is at /db/a/js/dci.js.  The ThickBox, Find, 
EditEntity and EditValues sections are where a lot of the action seems 
to be for this issue.  The rest of the code goes through the page and 
finds all divs with ".subtableTemplate" and ".valuesList" and generates 
webservice calls for each one.  The webservice calls return json that 
describe db objects; this gets parsed out to create DOM entries for each 
type of list.

Now, if I comment out various parts of the json-to-DOM code, the IE 
crashing behaviour subsides.  Also, sometimes I'll be able to run the 
page for a while before the crash occurs.  It *always* occurs around one 
of the following actions:

 - click on the Find button on the top row of links; the find screen 
(thickbox) appears. Click Cancel.  This should hangs it.
 - similar behaviour with Edit and Add links, which also use ThickBox to 
show edit panels.  Sometimes this will hang with the edit panels open; 
sometimes when the panels have been shut.

I'm at my wits end, frustrated and over budget.  I've been reading a lot 
about memory management and the like, and using Sieve and other tools to 
watch for leaks, which I don't see.

One thing I *do* notice, using Sieve, is that when I create a thickbox, 
then remove it, the objects stick around in IE's memory with references 
still too them.  I'm not sure if this is because of jQuery but in Sieve 
i'll see 8 objects get created (with the Thickbox) then 1 removed (the 
TB_HideSelect iframe hack, interestingly).

Is there some way to ensure the complete removal of these "orphan" DOM 
objects after a thickbox instantiation?

Otherwise - is there anything else I can look at doing to make this 
consumable by IE?  it's gonna kill us to rewrite it in a more 
conventional way; we've invested a lot in getting to where we are and 
I'm hoping I'm missing something obvious.

Thanks, everyone, for any suggestions you can give!

  elijah

Reply via email to