[richfaces-issues] [JBoss JIRA] Resolved: (RF-726) ScrollableDataTable - JavaScript optimisation

Maksim Kaszynski (JIRA) jira-events at lists.jboss.org
Fri Mar 21 11:00:49 EDT 2008


     [ http://jira.jboss.com/jira/browse/RF-726?page=all ]

Maksim Kaszynski resolved RF-726.
---------------------------------

    Resolution: Done

> ScrollableDataTable - JavaScript optimisation 
> ----------------------------------------------
>
>                 Key: RF-726
>                 URL: http://jira.jboss.com/jira/browse/RF-726
>             Project: RichFaces
>          Issue Type: Bug
>    Affects Versions: 3.1.0
>            Reporter: Mikhail Grushinskiy
>         Assigned To: Konstantin Mishin
>             Fix For: 3.2.0
>
>         Attachments: AnotherRun.jpg, Java Profiler results.jpg, JBossProfile.GIF
>
>
> Old title was
> Render Phase is too long with RichFaces table (scrollableDataTable)
> Table of 100 records with 20 columns takes 3.5 sec to render (on server side)
> Rendering in browser takes even longer
> 7.5  (!!!!!!) seconds to render on client side (FireFox 2.0) 
> My environment
> Release ID: JBoss [EAP] 4.2.0.GA (build: SVNTag=JBPAPP_4_2_0_GA date=200706281411)
> Java version: 1.6.0_02,Sun Microsystems Inc.
> JBoss Seam 1.2.1
> JSF Sun RI 1.2 (comes with JBoss EAP)
> Server side state saving
> Here is output from FireBug JavaScript profiler (apologies for formatting)
> scrollTo, setOpacity, _calcDefaultRowHeight, and getViewportHeight  javascript functions are main culprits on client side (90% of 7.5 seconds)
> Function
> 	
> Calls
> 	
> Percent
> 	
> Own Time
> 	
> Time
> 	
> Avg
> 	
> Min
> 	
> Max
> 	
> File
> scrollTo	272	52.8%	3984.375ms	3984.375ms	14.648ms	0ms	578.125ms	a4j_3_1_0-SNAPSHO... (line 110)
> setOpacity	221	25.88%	1953.125ms	3531.25ms	15.979ms	0ms	875ms	a4j_3_1_0-SNAPSHO... (line 114)
> _calcDefaultRowHeight	1	10.56%	796.875ms	796.875ms	796.875ms	796.875ms	796.875ms	scrollable-data-t... (line 183)
> getViewportHeight	8	5.18%	390.625ms	406.25ms	50.781ms	0ms	296.875ms	scrollable-data-t... (line 59)
> times	566	2.07%	156.25ms	187.5ms	0.331ms	0ms	187.5ms	a4j_3_1_0-SNAPSHO... (line 25)
> $	1893	1.04%	78.125ms	93.75ms	0.05ms	0ms	15.625ms	a4j_3_1_0-SNAPSHO... (line 90)
> setListeners	1	0.62%	46.875ms	62.5ms	62.5ms	62.5ms	62.5ms	scrollable-data-t... (line 222)
> parseTemplate	1	0.21%	15.625ms	812.5ms	812.5ms	812.5ms	812.5ms	scrollable-data-t... (line 144)
> initialize	1	0.21%	15.625ms	2500ms	2500ms	2500ms	2500ms	scrollable-data-t... (line 134)
> hasAttribute	1	0.21%	15.625ms	15.625ms	15.625ms	15.625ms	15.625ms	a4j_3_1_0-SNAPSHO... (line 128)
> extend	1893	0.21%	15.625ms	15.625ms	0.008ms	0ms	15.625ms	a4j_3_1_0-SNAPSHO... (line 97)
> requireClass	76	0.21%	15.625ms	31.25ms	0.411ms	0ms	15.625ms	scrollable-data-t... (line 8)
> getElement	56	0.21%	15.625ms	1156.25ms	20.647ms	0ms	578.125ms	scrollable-data-t... (line 45)
> getOpacity	206	0.21%	15.625ms	218.75ms	1.062ms	0ms	187.5ms	a4j_3_1_0-SNAPSHO... (line 111)
> observe	400	0.21%	15.625ms	15.625ms	0.039ms	0ms	15.625ms	scrollable-data-t... (line 21)
> parseTemplate	1	0.21%	15.625ms	390.625ms	390.625ms	390.625ms	390.625ms	scrollable-data-t... (line 99)
> getState	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 217)
> _calcDefaultRowHeight	1	0%	0ms	312.5ms	312.5ms	312.5ms	312.5ms	scrollable-data-t... (line 183)
> _getCellElements	69	0%	0ms	15.625ms	0.226ms	0ms	15.625ms	scrollable-data-t... (line 117)
> _getCellElements	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 117)
> _hideSplitter	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 125)
> _hideSplitter	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 125)
> _observeAndCache	475	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 217)
> _setPendingTask	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 158)
> adjustScrollPosition	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 197)
> adjustScrollPosition	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 197)
> adjustScrollPosition	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 152)
> adjustScrollPosition	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 152)
> bindAsEventListener	45	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 12)
> bindAsEventListener	3	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 12)
> bindAsEventListener	411	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 12)
> capitalize	3	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 26)
> clean	69	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 32)
> clean	69	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 32)
> clear	6	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 46)
> click	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 14)
> click	2	0%	0ms	7468.75ms	3734.375ms	0ms	7468.75ms	scrollable-data-t... (line 14)
> click	1	0%	0ms	7468.75ms	7468.75ms	7468.75ms	7468.75ms	scrollable-data-t... (line 14)
> clone	5	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 11)
> clone	4	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 11)
> clone	1	0%	0ms	62.5ms	62.5ms	62.5ms	62.5ms	a4j_3_1_0-SNAPSHO... (line 11)
> clone	21	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 48)
> collect	1	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 32)
> collect	5	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 32)
> constructor	55	0%	0ms	0ms	0ms	0ms	0ms	extend.js.seam (line 27)
> constructor	22	0%	0ms	0ms	0ms	0ms	0ms	extend.js.seam (line 28)
> copy	6	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 133)
> create	22	0%	0ms	0ms	0ms	0ms	0ms	extend.js.seam (line 64)
> create	38	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 3)
> create	86	0%	0ms	4484.375ms	52.144ms	0ms	2906.25ms	a4j_3_1_0-SNAPSHO... (line 3)
> createControl	1	0%	0ms	7062.5ms	7062.5ms	7062.5ms	7062.5ms	scrollable-data-t... (line 200)
> each	105	0%	0ms	7500ms	71.429ms	0ms	7468.75ms	a4j_3_1_0-SNAPSHO... (line 29)
> each	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 218)
> each	26	0%	0ms	7500ms	288.462ms	0ms	7468.75ms	a4j_3_1_0-SNAPSHO... (line 29)
> ensureVisible	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 211)
> execOnLoad	2	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 30)
> execOnLoad	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 30)
> execOnLoad	2	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 30)
> execOnLoad	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 30)
> extend	64	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 4)
> initialize	1	0%	0ms	796.875ms	796.875ms	796.875ms	796.875ms	scrollable-data-t... (line 97)
> findDOMClass	4	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 135)
> findOrStore	787	0%	0ms	6171.875ms	7.842ms	0ms	875ms	a4j_3_1_0-SNAPSHO... (line 101)
> findOrStore	79	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 101)
> from	1228	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 40)
> getBorderWidth	17	0%	0ms	31.25ms	1.838ms	0ms	15.625ms	scrollable-data-t... (line 63)
> getBorderWidth	3	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 63)
> getBorderWidth	14	0%	0ms	31.25ms	2.232ms	0ms	15.625ms	scrollable-data-t... (line 63)
> getColumns	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 120)
> getColumns	16	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 120)
> getColumnsFrozenWidth	6	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 209)
> getColumnsTotalWidth	4	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 208)
> getContainer	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 89)
> getCount	2	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 85)
> getDomDocument	1	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 12)
> load	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 2)
> getElement	427	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 45)
> getForm	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 240)
> getHeader	6	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 206)
> getHeader	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 206)
> getHeader	4	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 206)
> moveTo	13	0%	0ms	15.625ms	1.202ms	0ms	15.625ms	scrollable-data-t... (line 55)
> (no name)	5	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 5)
> TimedObserver	2	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 207)
> getHeight	124	0%	0ms	1750ms	14.113ms	0ms	578.125ms	a4j_3_1_0-SNAPSHO... (line 106)
> getPane	27	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 92)
> getHeader	17	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 206)
> moveTo	6	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 55)
> Insertion	4	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 138)
> getValue	2	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 209)
> setListeners	400	0%	0ms	15.625ms	0.039ms	0ms	15.625ms	scrollable-data-t... (line 222)
> getWidth	53	0%	0ms	1765.625ms	33.314ms	0ms	875ms	scrollable-data-t... (line 49)
> getX	2	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 66)
> getX	45	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 66)
> getX	3	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 66)
> observe	479	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 70)
> include	1	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 35)
> initialize	1	0%	0ms	7468.75ms	7468.75ms	7468.75ms	7468.75ms	scrollable-data-t... (line 199)
> initialize	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 238)
> initialize	1	0%	0ms	62.5ms	62.5ms	62.5ms	62.5ms	scrollable-data-t... (line 238)
> initialize	1	0%	0ms	15.625ms	15.625ms	15.625ms	15.625ms	scrollable-data-t... (line 238)
> initialize	1	0%	0ms	390.625ms	390.625ms	390.625ms	390.625ms	scrollable-data-t... (line 97)
> initialize	9	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 69)
> initialize	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 75)
> initialize	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 83)
> registerEvents	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 87)
> initialize	2	0%	0ms	7468.75ms	3734.375ms	0ms	7468.75ms	scrollable-data-t... (line 238)
> initialize	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 83)
> initialize	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 90)
> initialize	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 95)
> initialize	1	0%	0ms	7468.75ms	7468.75ms	7468.75ms	7468.75ms	scrollable-data-t... (line 238)
> registerEvents	2	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 91)
> initialize	1	0%	0ms	2421.875ms	2421.875ms	2421.875ms	2421.875ms	scrollable-data-t... (line 95)
> initialize	1	0%	0ms	2906.25ms	2906.25ms	2906.25ms	2906.25ms	scrollable-data-t... (line 134)
> initialize	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 134)
> inspectRanges	1	0%	0ms	62.5ms	62.5ms	62.5ms	62.5ms	scrollable-data-t... (line 219)
> isFunction	100	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 35)
> isObject	73	0%	0ms	2406.25ms	32.962ms	0ms	406.25ms	scrollable-data-t... (line 38)
> restoreState	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 220)
> loadRows	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 86)
> makeAbsolute	12	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 64)
> getState	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 217)
> toQueryString	1	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 56)
> setHeight	23	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 48)
> moveTo	3	0%	0ms	15.625ms	5.208ms	0ms	15.625ms	scrollable-data-t... (line 55)
> moveToY	15	0%	0ms	15.625ms	1.042ms	0ms	15.625ms	scrollable-data-t... (line 54)
> update	396	0%	0ms	0ms	0ms	0ms	0ms	extend.js.seam (line 38)
> observe	475	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 218)
> (no name)	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 194)
> setListeners	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 222)
> setListeners	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 222)
> parseTemplate	1	0%	0ms	312.5ms	312.5ms	312.5ms	312.5ms	scrollable-data-t... (line 185)
> pckg	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 9)
> updateHeaders	2	0%	0ms	406.25ms	203.125ms	187.5ms	218.75ms	scrollable-data-t... (line 126)
> registerEvents	3	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 91)
> registerEvents	2	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 87)
> updateHeaders	1	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 126)
> setupClass	22	0%	0ms	0ms	0ms	0ms	0ms	extend.js.seam (line 3)
> requireClass	21	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 8)
> requireClass	20	0%	0ms	31.25ms	1.563ms	0ms	15.625ms	scrollable-data-t... (line 8)
> updateLayout	1	0%	0ms	2640.625ms	2640.625ms	2640.625ms	2640.625ms	scrollable-data-t... (line 203)
> getHeight	97	0%	0ms	1781.25ms	18.363ms	0ms	875ms	a4j_3_1_0-SNAPSHO... (line 106)
> getScrollOffset	4	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 207)
> updateLayout	2	0%	0ms	406.25ms	203.125ms	187.5ms	218.75ms	scrollable-data-t... (line 119)
> OnSepMouseMove	43	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 121)
> Level	8	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 94)
> _each	1	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 60)
> updateLayout	1	0%	0ms	109.375ms	109.375ms	109.375ms	109.375ms	scrollable-data-t... (line 196)
> setWidth	24	0%	0ms	15.625ms	0.651ms	0ms	15.625ms	scrollable-data-t... (line 52)
> (no name)	22	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 194)
> updateLayout	1	0%	0ms	2078.125ms	2078.125ms	2078.125ms	2078.125ms	scrollable-data-t... (line 148)
> moveToX	38	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 53)
> R	1	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 58)
> OnSepMouseMove	3	0%	0ms	0ms	0ms	0ms	0ms	scrollable-data-t... (line 121)
> _each	1	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 60)
> _calcDefaultRowHeight	1	0%	0ms	703.125ms	703.125ms	703.125ms	703.125ms	scrollable-data-t... (line 183)
> _each	26	0%	0ms	7500ms	288.462ms	0ms	7468.75ms	a4j_3_1_0-SNAPSHO... (line 45)
> unregister	2	0%	0ms	0ms	0ms	0ms	0ms	a4j_3_1_0-SNAPSHO... (line 61)
> Timing of server side rendering from log:
> 2007-08-25 22:16:20,562 DEBUG [org.ajax4jsf.event.AjaxPhaseListener] Process before phase RESTORE_VIEW 1
> 2007-08-25 22:16:20,562 DEBUG [org.jboss.seam.jsf.SeamPhaseListener] before phase: RESTORE_VIEW 1
> 2007-08-25 22:16:20,562 DEBUG [org.jboss.seam.jsf.AbstractSeamPhaseListener] beginning transaction prior to phase: RESTORE_VIEW 1
> 2007-08-25 22:16:20,562 DEBUG [org.jboss.seam.jsf.SeamPhaseListener] after phase: RESTORE_VIEW 1
> 2007-08-25 22:16:20,562 DEBUG [org.jboss.seam.jsf.AbstractSeamPhaseListener] committing transaction after phase: RESTORE_VIEW 1
> 2007-08-25 22:16:20,562 DEBUG [org.ajax4jsf.event.AjaxPhaseListener] Process after phase RESTORE_VIEW 1
> 2007-08-25 22:16:20,562 DEBUG [org.ajax4jsf.event.AjaxPhaseListener] Process before phase RENDER_RESPONSE 6
> 2007-08-25 22:16:20,562 DEBUG [org.jboss.seam.jsf.SeamPhaseListener] before phase: RENDER_RESPONSE 6
> 2007-08-25 22:16:20,562 DEBUG [org.jboss.seam.jsf.AbstractSeamPhaseListener] beginning transaction prior to phase: RENDER_RESPONSE 6
> 2007-08-25 22:16:23,796 DEBUG [org.jboss.seam.jsf.SeamPhaseListener] after phase: RENDER_RESPONSE 6
> 2007-08-25 22:16:23,796 DEBUG [org.jboss.seam.jsf.AbstractSeamPhaseListener] committing transaction after phase: RENDER_RESPONSE 6
> 2007-08-25 22:16:23,796 DEBUG [org.ajax4jsf.event.AjaxPhaseListener] Process after phase RENDER_RESPONSE 6
> 2007-08-25 22:16:24,250 DEBUG [org.ajax4jsf.webapp.BaseXMLFilter] Parsing html total time 454ms
> 2007-08-25 22:16:24,250 DEBUG [org.ajax4jsf.webapp.BaseFilter] Finished request processing total time 3688ms for uri: /Table/recordListRich.seam
> Test page
> <ui:composition xmlns="http://www.w3.org/1999/xhtml"
>                 xmlns:s="http://jboss.com/products/seam/taglib"
>                 xmlns:ui="http://java.sun.com/jsf/facelets"
>                 xmlns:f="http://java.sun.com/jsf/core"
>                 xmlns:h="http://java.sun.com/jsf/html"
> 				xmlns:a4j="http://richfaces.org/a4j"
> 				xmlns:rich="http://richfaces.org/rich"
>                 template="layout/template.xhtml">
>                        
> <ui:define name="body">
>     <h1>recordList</h1>
>     <p>Generated list page</p>
>     
>     <h:messages globalOnly="true" styleClass="message"/>
>     
>     <h:outputText value="No record exists" 
>             rendered="#{empty recordList.resultList}"/>
>     <rich:scrollableDataTable rowKeyVar="rkv" frozenColCount="1" height="400px" width="100%" id="recordList" columnClasses="col"
>                 value="#{recordList.resultList}" var="record" sortMode="single"
>                 rendered="#{not empty recordList.resultList}">
>         <rich:column id="recId">
>             <f:facet name="header">Id</f:facet>
>             #{record.id}
>         </rich:column>
>         <rich:column id="recName">
>             <f:facet name="header">Name</f:facet>
>             <s:link id="record" value="#{record.name}" view="/record.xhtml">
>                 <f:param name="recordId" value="#{record.id}"/>
>             </s:link>
>         </rich:column>
>         <rich:column id="recF01">
>             <f:facet name="header">F01</f:facet>
>             <s:link id="record" value="#{record.f01}" view="/record.xhtml">
>                 <f:param name="recordId" value="#{record.id}"/>
>             </s:link>
>         </rich:column>
> ...
>     </rich:scrollableDataTable>
>     
>     <div class="actionButtons">
>         <s:button id="done" value="Create record"
>             view="/record.xhtml"/>			  
>     </div>
>     
> </ui:define>
> </ui:composition>
> I hope this can help to fix the performance, cause with current implementation it is waaay to clow
> Thanks

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the richfaces-issues mailing list