Opened 11 years ago

Closed 11 years ago

#6230 closed task (wontfix)

drop down appear slowly on IE6

Reported by: bill Owned by: bill
Priority: high Milestone: 1.3
Component: Dijit Version: 1.0
Keywords: Cc:
Blocked By: Blocking:

Description (last modified by bill)

Drop downs like the Calendar for DateTextBox appear very slowly on IE. See test_TooltipDialog for an example.

Probably due to the iframe (it works quickly on IE7 and other browsers), and possibly due to the sizing of the iframe via CSS expression. Needs some investigation.

Change History (3)

comment:1 Changed 11 years ago by AnthonyVigil

We solved this for the Calendar and context menus by replacing this line in popup.js:

dojo.body().appendChild(wrapper);

with the following code:

if (args.parent) {

if (args.parent.domNode)

args.parent.domNode.appendChild(wrapper);

else

args.parent.appendChild(wrapper);

} else {

dojo.body().children[0].appendChild(wrapper);

}

It seems that when the child is added to the dojo body, the resizing can take a lot of time. Now it is performing much better for us.

comment:2 Changed 11 years ago by bill

Description: modified (diff)
Milestone: 1.21.3

Hmm, that's great you fixed it but I'm confused.

  • isn't the wrapper display: none? and there's still an issue w/resizing?
  • the reason we attach to dojo.body() is so positioning calculations work correctly. if the drop down is supposed to be placed at (100,100), relative to the viewport, but it's inside a position:relative <div> like for example in a BorderContainer, then it will get placed at (100,100) relative the BorderContainer's top left corner. Wasn't that an issue for you?

comment:3 Changed 11 years ago by bill

Resolution: wontfix
Status: newclosed

I played w/this for a while and couldn't get it to run faster.

On an architectural level the system could probably be redesigned to run faster... on a Menu, for example:

  1. code produces a wrapper node: this is unnecessary; the background iframe could be placed directly behind the menu
  2. the iframe has a CSS expression to match the width & height of the thing in front of it. It might be faster to simply set width and height.

However, it's not easy to change those things since

  1. the wrapper paradigm is useful for things like Dialog, so that the iframe moves along with the dialog (when the user drags the dialog)
  2. the CSS expression is useful for things that change size dynamically, again as Dialog might do.

So, realistically I don't think we'll make this any faster.

Note: See TracTickets for help on using tickets.