diff --git a/src/global/border.js b/src/global/border.js index f53b923..f09e90f 100644 --- a/src/global/border.js +++ b/src/global/border.js @@ -6,6 +6,10 @@ import Store from '../store'; function getBorderInfoCompute(sheetIndex) { let borderInfoCompute = {}; + if(Store.borderInfoCache!=null){ + return Store.borderInfoCache; + } + let cfg, data; if(sheetIndex == null){ cfg = Store.config; @@ -1026,6 +1030,8 @@ function getBorderInfoCompute(sheetIndex) { } } + Store.borderInfoCache = borderInfoCompute; + return borderInfoCompute; } diff --git a/src/global/draw.js b/src/global/draw.js index b2e53f9..a55252c 100644 --- a/src/global/draw.js +++ b/src/global/draw.js @@ -1018,6 +1018,10 @@ function luckysheetDrawMain(scrollWidth, scrollHeight, drawWidth, drawHeight, of let bd_r = x.substr(0, x.indexOf('_')); let bd_c = x.substr(x.indexOf('_') + 1); + if(bd_r < dataset_row_st || bd_r > dataset_row_ed || bd_c < dataset_col_st || bd_c > dataset_col_ed){ + continue; + } + if(borderOffset[bd_r + "_" + bd_c]){ let start_r = borderOffset[bd_r + "_" + bd_c].start_r; let start_c = borderOffset[bd_r + "_" + bd_c].start_c; @@ -1064,6 +1068,8 @@ function luckysheetDrawMain(scrollWidth, scrollHeight, drawWidth, drawHeight, of Store.measureTextCacheTimeOut = setTimeout(() => { Store.measureTextCache = {}; Store.measureTextCellInfoCache = {}; + Store.borderInfoCache = null; + Store.cellOverflowMapCache = null; }, 2000); } @@ -1954,6 +1960,10 @@ let cellOverflowRender = function(r, c, stc, edc,luckysheetTableContent,scrollHe function getCellOverflowMap(canvas, col_st, col_ed, row_st, row_end){ let map = {}; + if(Store.cellOverflowMapCache!=null){ + return Store.cellOverflowMapCache; + } + let data = Store.flowdata; for(let r = row_st; r <= row_end; r++){ @@ -2055,6 +2065,8 @@ function getCellOverflowMap(canvas, col_st, col_ed, row_st, row_end){ } } + Store.cellOverflowMapCache = map; + return map; } diff --git a/src/global/method.js b/src/global/method.js index 26934e5..2887185 100644 --- a/src/global/method.js +++ b/src/global/method.js @@ -135,6 +135,8 @@ const defaultConfig = { measureTextCache:{}, measureTextCellInfoCache:{}, measureTextCacheTimeOut:null, + borderInfoCache:null, + cellOverflowMapCache:null, zoomRatio:1, diff --git a/src/store/index.js b/src/store/index.js index c446050..7e32061 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -119,6 +119,8 @@ const Store = { measureTextCache:{}, measureTextCellInfoCache:{}, measureTextCacheTimeOut:null, + borderInfoCache:null, + cellOverflowMapCache:null, zoomRatio:1,