Opened 11 years ago

Closed 10 years ago

Last modified 9 years ago

#9222 closed defect (fixed)

Screen jitter occurs when click the DataGrid

Reported by: shu_ecust Owned by: Bryan Forbes
Priority: high Milestone: 1.4
Component: DojoX Grid Version: 1.3.0
Keywords: Screen jitter Cc:
Blocked By: Blocking:

Description

1.Edit "dojox/grid/tests/test_data_grid_large.html", make the height of the datagrid to about 2000px( #grid, #grid2 { width: 65em; height: 2000px; padding: 1px;}). 2.Open this file in IE. 3.Drag the scrollbar of IE to the middle. 4.Select one row of the DataGrid? and the screen jitter occurs.

When user click a row of the DataGrid?, DataGrid? will focus the "scrollboxNode" in order to response the mouse rolling event. In IE, focus the "scrollboxNode" will cause the screen jitter, we can resolve this defect by add "if(dojo.isIE
dojo.isWebKit dojo.isOpera){" in _View.js(focus:function).

Change History (4)

comment:1 Changed 11 years ago by Adam Peller

Component: GeneralDojoX Grid
Owner: changed from anonymous to Bryan Forbes

comment:2 Changed 10 years ago by Nathan Toone

Resolution: fixed
Status: newclosed

(In [20273]) Fixes #9222 - Focus the hidden node instead in order to make sure that the grid does not jump around !strict

comment:3 Changed 10 years ago by bill

Milestone: tbd1.4

comment:4 in reply to:  2 Changed 9 years ago by gbroad

Replying to toonetown:

(In [20273]) Fixes #9222 - Focus the hidden node instead in order to make sure that the grid does not jump around !strict

Hi, toonetown, I meet a performance issue on FF with grid, the operation is: switch the focus from a edited cell to another cell by left click mouse, the profiling result is: Function Calls Percent Own Time Time Avg Min Max File focus() 7 31.86% 335.581ms 338.211ms 48.316ms 1.551ms 112.27ms _View.js (line 83) fire() 22 28.51% 300.364ms 697.981ms 31.726ms 0.162ms 112.276ms util.js (line 13) getPageNodePosition() 2 12.37% 130.342ms 130.342ms 65.171ms 64.79ms 65.552ms _Scroller.js (line 421) normalizeRowNodeHeights() 2 5.73% 60.411ms 61.384ms 30.692ms 4.716ms 56.668ms _ViewManager.js (line 5) findCellTarget() 46 5.29% 55.713ms 57.783ms 1.256ms 0.039ms 4.345ms _Builder.js (line 141) focusSelectNode() 2 5.21% 54.897ms 110.52ms 55.26ms 54.991ms 55.529ms _base.js (line 24) attr() 1066 0.92% 9.715ms 22.342ms 0.021ms 0.008ms 0.103ms html.js (line 1323) measurePage() 2 0.81% 8.578ms 8.582ms 4.291ms 4.051ms 4.531ms _Scroller.js (line 151) _hasAttr() 1025 0.75% 7.903ms 7.903ms 0.008ms 0.004ms 0.039ms html.js (line 1291)

You will see the focus function occupied lots of time, if I follow your change in 20273, add a "dojo.isMoz" in the judgement scentence of focus function , this performance issue can be resolved.

My question is: What the difference between "this.hiddenFocusNode.focus()" and "this.scrollboxNode.focus()", can we use "this.hiddenFocusNode.focus()" in focus function for any browser? Thanks so much!

Note: See TracTickets for help on using tickets.