I've implemented spellchecker (latest/last 8.0 version in a .NET 1.1 legacy app) in an identical fashion on a number of fields across a number of pages. It works fine everywhere except on one specific page; on that page, if I fire off the spell checker on a textbox that isn't empty, IE stops responding, CPU usage spikes and stays fairly steady at about 10-12% (app is running inside a virtual machine that uses a single core)... but if I walk away for 3-5 minutes, the dialog will come up and function properly.
I saw a discussion of similar issue
here , but I don't think it's the same problem; there's no postback happening. I even checked it out in Fiddler and there's no http traffic happening in the minutes between the button click and the arrival of the dialog snippet. I've dropped alerts into the client-side code to verify that the delay isn't somewhere else; everything up until the SpellChecker.start(target) happens without delay.
The final HTML generated by the code for this page comes out to about twice the size of the next largest, and its viewstate is about 75% bigger. It doesn't seem like the overall page size should have an effect, but even if it did, the size difference wouldn't likely explain the difference of several minutes.
The page does, however, have a listbox with a large number of entries - sometimes several hundred. Just for the sake of dropping the page size, I commented out he population code for this list... and with the list empty, the spellcheck dialog pops up right away! Again, no postback happening that would be causing the list to re-populate (and in any case the dialog takes much longer to come up than the page does to load).
Any idea what could be causing this and how to work around it? Dropping the list box isn't really an option.