#1141 closed bug (worksforme)
$('#id').height() and $('#id').width() performance under IE7 — at Version 3
Reported by: | Ihsahn | Owned by: | paul |
---|---|---|---|
Priority: | major | Milestone: | 1.1.3 |
Component: | dimensions | Version: | 1.1.2 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description (last modified by )
There's a big problem with performance of $('#id').height() and $('#id').width() under IE. It's noticably slower than under FF or Opera. I had to switch to document.getElementById(id).offsetWidth and document.getElementById(id).offsetHeight to avoid freezing IE on resizing ;/
I will try to provide testcase for this, later.
Change History (3)
comment:1 Changed 14 years ago by
comment:3 Changed 14 years ago by
Component: | dimensions → core |
---|---|
Description: | modified (diff) |
Resolution: | → worksforme |
Status: | new → closed |
width and height methods in dimensions just fall back to the jQuery core when using a selector. If the element is hidden, then some extra steps are necessary to get the width and height. Please note that that width and offsetWidth are not the same thing. Getting the width and height of a hidden element is slow and should be cached and not called on window resize in IE since IE fires that event a lot!
if !$('#id').is(:visible), jQuery tries to clone the node, append to DOM, calculate the dimension and remove the cloned node. These steps significantly slow down execution especially when the element is large.
The performance seems to be OK for me when the element is visible.