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