【技术实现步骤摘要】
基于canvas元素的表格渲染方法、装置及计算机设备
本申请适用于计算机
,尤其涉及到一种基于canvas元素的表格渲染方法、装置及计算机设备。
技术介绍
由于在开发过程中,表格是最常用到的,为了能快速进行表格的制作以及数据的绑定,进而加快表格的生成速度,经常采用渲染的方式,使代码量大大减少,表格的生成更加方便和精确。目前业内有进行表格渲染组件依然使用的是过时的table标签来进行布局,然而table标签对移动端性能支持较差,因其子元素自适应的特性,移动端的展示会出现很多样式问题,甚至直接崩溃,使渲染效率较低。
技术实现思路
有鉴于此,本申请提供了一种基于canvas元素的表格渲染方法、装置及计算机设备,能够解决在渲染生成表格时,兼容性差且渲染效率低的问题。根据本申请的一个方面,提供了一种基于canvas元素的表格渲染方法,该方法包括:在待创建表格的页面中引入canvas-Table的JavaScript文件,以便全局使用canvas-Table函数;基于所述canvas-Table函数在主线程中创建canvas元素,并将所述canvas元素插入待渲染元素节点中;利用所述canvas-Table函数创建Worker线程;将各个所述待渲染元素节点对应的待渲染数据上传至所述Worker线程并移交canvas的控制权;在所述Worker线程上利用所述待渲染数据中的绘制函数渲染生成表格。根据本申请的另一个方面,提供了一种基于canvas ...
【技术保护点】
1.一种基于canvas元素的表格渲染方法,其特征在于,包括:/n在待创建表格的页面中引入canvas-Table函数的JavaScript文件,以便全局使用canvas-Table函数;/n基于所述canvas-Table函数在主线程中创建canvas元素,并将所述canvas元素插入待渲染元素节点中;/n利用所述canvas-Table函数创建Worker线程;/n将各个所述待渲染元素节点对应的待渲染数据上传至所述Worker线程并移交canvas的控制权;/n在所述Worker线程上利用所述待渲染数据中的绘制函数渲染生成表格。/n
【技术特征摘要】
1.一种基于canvas元素的表格渲染方法,其特征在于,包括:
在待创建表格的页面中引入canvas-Table函数的JavaScript文件,以便全局使用canvas-Table函数;
基于所述canvas-Table函数在主线程中创建canvas元素,并将所述canvas元素插入待渲染元素节点中;
利用所述canvas-Table函数创建Worker线程;
将各个所述待渲染元素节点对应的待渲染数据上传至所述Worker线程并移交canvas的控制权;
在所述Worker线程上利用所述待渲染数据中的绘制函数渲染生成表格。
2.根据权利要求1所述的方法,其特征在于,所述在将各个所述待渲染元素节点对应的待渲染数据上传至所述Worker线程并移交canvas的控制权之后,具体还包括:
在所述Worker线程中接收上传的待渲染数据并获取canvas的控制权。
3.根据权利要求2所述的方法,其特征在于,在所述Worker线程上利用所述待渲染数据中的绘制函数渲染生成表格之前,具体还包括:
提取所述待渲染数据中包含的各个目标渲染元素;
将所述待渲染数据中各个所述目标渲染元素对应的定制绘制函数确定为目标绘制函数;
若判定所述待渲染数据中不存在与所述目标渲染元素对应的定制绘制函数,则将所述目标渲染元素对应的默认绘制函数确定为所述目标绘制函数。
4.根据权利要求3所述的方法,其特征在于,在所述Worker线程上利用所述待渲染数据中的绘制函数渲染生成表格,具体包括:
获取所述待渲染数据的文件类型;
基于所述文件类型在所述Worker线程中利用各个所述目标绘制函数渲染生成表格。
5.根据权利要求4所述的方法,其特征在于,若所述待渲染数据的文件类型为init,所述基于所述文件类型在所述Worker线程中利用各个所述目标绘制函数渲染生成表格,具体包括:
在离屏canvas上调用getContext(),以获取CanvasRenderingContext2D接口提供的2D渲染背景;
利用所述待渲染数据中各个目标渲染元素对应的参数信息确定待生成表格对应的配置信息;
依据所述目标绘制函数中的外边框绘制函数绘制与所述配置信息对应的外边框;
利用所述目标绘制函数中的内边框绘制函数绘制与所述配置信息对应的内边框;
依据所述目标绘制函数中的单元格绘制函数以及所述待渲染数据中单元格的传入参数绘制与所述配置信息对应的单元格;
若所述单元格的传入参数merge为row,所述依据所述目标绘制函数中的单元格绘制函数以及所述待渲染数据中单元格的传入参数绘制与所述配置信息对应的单元格,具体包括:
预先绘制行数据,若判定当前列中的数据与上一列中的数据相同,则将当前列的单元格与上一列的单元格合并;
若所述单元格的传入...
【专利技术属性】
技术研发人员:赵学通,
申请(专利权)人:平安健康保险股份有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。