Bug Tracker

Modify

Ticket #1141 (closed bug: worksforme)

Opened 6 years ago

Last modified 6 years ago

$('#id').height() and $('#id').width() performance under IE7

Reported by: Ihsahn Owned by: paul
Priority: major Milestone: 1.1.3
Component: dimensions Version: 1.1.2
Keywords: Cc:
Blocking: Blocked by:

Description (last modified by brandon) (diff)

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

comment:1 Changed 6 years ago by arrix

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.

comment:2 Changed 6 years ago by dcpedit

The slow performace is also visible in IE 6

comment:3 Changed 6 years ago by brandon

  • Status changed from new to closed
  • Resolution set to worksforme
  • Component changed from dimensions to core
  • Description modified (diff)

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!

comment:4 Changed 6 years ago by brandon

  • need changed from Review to Test Case
  • Resolution worksforme deleted
  • Status changed from closed to reopened
  • Component changed from core to dimensions

Hmmm ... I haven't been able to reproduce this. Could someone provide a test case? It seems this has been reported a few times now. I'm curious as to what is happening. Does the problem exist while still using dimensions?

comment:5 Changed 6 years ago by brandon

  • Status changed from reopened to closed
  • Resolution set to worksforme

Please follow the  bug reporting guidlines and use  jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.

View

Add a comment

Modify Ticket

Action
as closed
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.