I'm having difficulty in explaining why the following code runs slower in IE9 than IE8! (Testing in Win 7 IE9 both 32 bit and 64 bit running in VMWare 3 virtual machine on OS X 10.6.7)
Here's some test code that runs smoothly in about half a second in (latest) FF/Chrome/Safari on OS X, WinXP, and Win7 plus IE7 & 8 on WinXP (for simplicity I removed the tweak that makes it work in IE6).
For some reason I can't explain, it's awful in IE9, slow and clunky. Reducing the time for the setTimeout makes it a bit quicker but no less jerky.
I've tried removing and benchmarking a number of what might be the choke points (Math.min for example ... all with no change.
I'm stumped ... can anyone please point me in the right direction?... preferably one that does not require browser-sniffing?
Here's the test code ...
<div id = 'panel' class='noShow' style='background-color: #aaa;'>
<div id = 'wrapper' class='slideWrapper'>
var e = document.getElementById('panel');
var w = document.getElementById('wrapper');
w.style.overflow = 'hidden';
w.style.height = '1px';
var sh = w.scrollHeight;
w.style.height = Math.min(sh, (w.offsetHeight + Math.ceil(sh/15))) + 'px';
(w.offsetHeight < sh)
w.style.height = 'auto';
All ideas gratefully received... thanks in advance.
PS Posted this on stackoverflow.com without success - hopefully sitepoint.com readers can help?
PPS Sorry if this is a double-post ... I thought I posted this some hour or so ago but I can't see it on the forum at all. Maybe I goofed?
PPPS Hmmm... the editor removed the tabs in the .js, sorry.