Render and Cache"
m |
|||
Line 14: | Line 14: | ||
ZK Spreadsheet loads cell data and also prunes invisible cells (DOM Elements) when users scrolls through the sheet. The default setting is 8000, meaning client side will prune cells only when the total number of cells exceeds 8000. | ZK Spreadsheet loads cell data and also prunes invisible cells (DOM Elements) when users scrolls through the sheet. The default setting is 8000, meaning client side will prune cells only when the total number of cells exceeds 8000. | ||
− | Ideally, if the browser at the client side is able to support enough memory space, pruning no cells would provide faster response time as there would be no need for re-creating all loaded cells. However, there are always limitations in a browser, if the number of | + | Ideally, if the browser at the client side is able to support enough memory space, pruning no cells would provide faster response time as there would be no need for re-creating all loaded cells. However, there are always limitations in a browser, if the number of rendered cells exceeds what the browser can handle, the browser may become slow and unstable. |
Set proper size by <javadoc directory="zss" method="setMaxRenderedCellSize">org.zkoss.zss.ui.Spreadsheet</javadoc> | Set proper size by <javadoc directory="zss" method="setMaxRenderedCellSize">org.zkoss.zss.ui.Spreadsheet</javadoc> |
Revision as of 01:49, 22 March 2013
Purpose
ZK Spreadsheet provides various settings to cache rendered cells and sheets, optimal values could be provided to achieve maximum performance.
Client Cache
Using client cache improves the performance when users switch between sheets.
ZK Spreadsheet enables cache by default. To disable cache, use Spreadsheet.setClientCacheDisabled
Max Rendered Cell Size
ZK Spreadsheet loads cell data and also prunes invisible cells (DOM Elements) when users scrolls through the sheet. The default setting is 8000, meaning client side will prune cells only when the total number of cells exceeds 8000.
Ideally, if the browser at the client side is able to support enough memory space, pruning no cells would provide faster response time as there would be no need for re-creating all loaded cells. However, there are always limitations in a browser, if the number of rendered cells exceeds what the browser can handle, the browser may become slow and unstable.
Set proper size by Spreadsheet.setMaxRenderedCellSize
Pre-load Size
ZK Spreadsheet loads cell data based on the preloadRowSize/preloadColSize attribute when loading sheets and on the action of scrolling.
In theory, increasing pre-load size will improve response time. Since cell data has been preloaded, there is no need to send request back to server again; thus decreasing the number of client/server communications at the same time. However, if preload size exceeds more than needed, client side may need extra CPU time to process those extra data. For example, with a screen display which can show 50 rows * 30 columns, setting preload size to 500 rows * 300 columns simply wastes a lot of CPU time at the client side to process those extra invisible cells.
Set proper preload size based on the sheet's data size by Spreadsheet.setPreloadRowSize and Spreadsheet.setPreloadColumnSize
ZUML
<zk>
<window vflex="1" width="100%">
<spreadsheet
clientCacheDisabled="false"
maxRenderedCellSize="15000"
preloadColumnSize="60"
preloadRowSize="80"
id="spreadsheet" vflex="true" width="100%" showSheetbar="true"
src="/WEB-INF/excel/config/ZSS-demo_sample.xlsx" maxcolumns="100" maxrows="1000"
></spreadsheet>
</window>
</zk>
View complete source of ZUML renderAndCache.zul
Version History
Version | Date | Content |
---|---|---|
2.3.0 | April, 2012 | Client cache/Max Rendered Cell Size |
All source code listed in this book is at Github.