找回密码
 立即注册

QQ登录

只需一步,快速开始

牛马大队

注册会员

10

主题

21

帖子

125

积分

注册会员

积分
125
牛马大队
注册会员   /  发表于:2021-7-7 20:48  /   查看:1875  /  回复:1
本帖最后由 牛马大队 于 2021-7-8 14:01 编辑

问题描述:
循环渲染大面积颜色时,造成浏览器假死

期望结果:
有没有不影响性能的方法

  1. checkCellError = data => {
  2.     const cellStyle = new GCsheets.Style()
  3.     cellStyle.backColor = "red"
  4.     for (let key in data['cellError']) {
  5.       if (data['cellError'].hasOwnProperty(key)) {
  6.         data['cellError'][key].map((item, index) => {
  7.           if (item !== null && item.indexOf('errMsg') >= 0) {
  8.             this.sheet.setStyle(Number(key), index, cellStyle)
  9.             this.sheet.comments.add(Number(key), index, item)
  10.           } else {
  11.             this.sheet.comments.remove(Number(key), index)
  12.           }
  13.         })
  14.       }
  15.     }
  16.     let headerStyle = new GCsheets.Style()
  17.     headerStyle.backColor = '#404040'
  18.     headerStyle.foreColor = 'white'
  19.     for (let i = 0; i < this.sheet.getRowCount(); i++) {
  20.       for (let j = 0; j < 9; j++) {
  21.         this.sheet.setStyle(i, j, headerStyle)
  22.       }
  23.     }
  24.     this.sheet.getRange(2, 0, 200, 50).locked(false)
  25.     this.sheet.getRange(0, 0, 200, 9).locked(true)
  26.   }
复制代码


1 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-7-8 09:33:45
沙发
您好,
在大面积渲染样式时,可以使用suspendPaint / resumePaint函数来加速渲染性能。
  1. sheet.suspendPaint();
  2. ...
  3. // do changes
  4. ...
  5. sheet.resumePaint();
复制代码
具体请参考学习指南:https://demo.grapecity.com.cn/sp ... ook/painting/purejs


另外,关于样式问题推荐您阅读此篇技术博客:
https://gcdn.grapecity.com.cn/showtopic-78902-1-12.html

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部