Opened 12 years ago
Closed 11 years ago
#9208 closed defect (fixed)
DialogUnderlay: performance problem on IE6 w/CSS expressions
Reported by: | nkolba | Owned by: | bill |
---|---|---|---|
Priority: | high | Milestone: | 1.4 |
Component: | Dijit | Version: | 1.3.0 |
Keywords: | Cc: | Sam Foster | |
Blocked By: | Blocking: |
Description (last modified by )
CSS expressions on DialogUnderlay are causing performance issues in IE6. Proposed fix is to disable expressions when dialog is hidden.
Change History (6)
comment:1 follow-up: 2 Changed 12 years ago by
Component: | General → Dijit |
---|---|
Owner: | anonymous deleted |
comment:2 Changed 12 years ago by
Owner: | set to Sam Foster |
---|---|
Status: | new → assigned |
This came in as a sitepen support ticket originally, I asked Nick to file it here so we/he could track it. A test case would be good though...
Replying to bill:
DialogUnderlay doesn't use any CSS expressions AFAIK. Maybe are you talking about the !BackgroundIFrame?
Yes, the CSS expressions are actually in the BackgroundIframe? class, but as the iframes are recycled, and arent easily hook-able, the workaround we've tested (to the problem observed when using Dialog) adds some code to BackgroundIframe? to remove the expressions in the dijit.DialogUnderlay? class' hide method. This might be an issue elsewhere, best fixed somehow in the BackgroundIframe? itself, but I dont have any reports to go on for that.
comment:3 Changed 12 years ago by
Summary: | dijit.dialog bug in IE 6 → DialogUnderlay: performance problem on IE6 w/CSS expressions |
---|
ISTM the BackgroundIframe code already removes the expressions when the iframes are put in the re-use queue:
this.push = function(iframe){ iframe.style.display="none"; if(dojo.isIE){ iframe.style.removeExpression("width"); iframe.style.removeExpression("height"); } queue.push(iframe); }
Isn't that code working for you (and if not, why not)?
comment:4 Changed 11 years ago by
In the Dialog's fadeOut.onEnd method, you get dijit._underlay.hide(). This only does:
this.domNode.style.display = "none"; if(this.bgIframe.iframe){ this.bgIframe.iframe.style.display = "none"; }
...It looks like it should be calling dijit._frames.push() there?
comment:5 Changed 11 years ago by
Description: | modified (diff) |
---|---|
Milestone: | tbd → 1.4 |
Owner: | changed from Sam Foster to bill |
Status: | assigned → new |
Ah I see, OK fair enough, I'll check in a fix. Actually just call BackgroundIframe.destroy() will work, since that will save the <iframe> node (although destroying the BackgroundIframe object)
comment:6 Changed 11 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
DialogUnderlay doesn't use any CSS expressions AFAIK. Maybe are you talking about the !BackgroundIFrame?
Can you attach a test case showing this performance issue?
Also, when you write a summary for a ticket try to write something more specific, like "Dialog: performance issue w/CSS expressions on IE6" Thanks.