一种快速拉取多源数据填充复杂界面表单的方法及系统技术方案

技术编号:39001565 阅读:10 留言:0更新日期:2023-10-07 10:33
本发明专利技术属于数据处理技术领域,公开了一种快速拉取多源数据填充复杂界面表单的方法及系统。该方法在浏览器端采用多线程技术并行拉取多数据源;同时对数据源的内容和类型进行优先级排序;从数据源中获得的数据,获取响应数据流并对数据流进行边下载、边解析、边渲染至页面展示。本发明专利技术具备支持多数据源、数据清洗、快速填充等特点。本发明专利技术提出了一种在线表格数据快速填充的方法。利用worker实现多线程作业,并行处理多数据源数据拉取工作,在前端实现流式JSON数据解析,将解析完成后的数据按照值、组件的优先级进行填充渲染,从而达到在前端下载数据的同时进行数据解析、渲染,有效减少整体渲染时间的目的。少整体渲染时间的目的。少整体渲染时间的目的。

【技术实现步骤摘要】
一种快速拉取多源数据填充复杂界面表单的方法及系统


[0001]本专利技术属于数据处理
,尤其涉及一种快速拉取多源数据填充复杂界面表单的方法及系统。

技术介绍

[0002]近年来,工业互联网快速发展,制造业企业开始越来越多的在线上处理业务数据,其中不乏存在一些复杂表格的在线展示,且随着业务系统的增多,同一页面往往需要请求来自不同业务系统的数据进行在线展示,这就给前端的数据加载和页面渲染提出了挑战。因为数据量大、表格展示形式复杂,导致前端数据加载慢、用户等待时间变长、操作卡顿甚至网页频频崩溃,一种快速的在线表格数据的填充方法就变得有必要。
[0003]通过上述分析,现有技术存在的问题及缺陷为:在线表单数据在加载过程中,存在表格展示复杂、数据量大、数据来源多且复杂的场景,这个时候就会产生页面卡顿、数据加载慢、页面渲染时间过长的问题,影响用户的操作体验。为应对这种场景,提供了一种快速在WEB端多数据源加载、清洗和填充的解决方法。

技术实现思路

[0004]为克服相关技术中存在的问题,本专利技术公开实施例提供了一种快速拉取多源数据填充复杂界面表单的方法及系统。
[0005]所述技术方案如下:一种快速拉取多源数据填充复杂界面表单的方法,通过多线程并行加载数据、大数据切分小数据块逐步渲染,具体包括以下步骤:S1,在浏览器端采用多线程技术并行拉取多数据源;S2,对从数据源中获得的数据进行下载的同时将大数据切分为小数据块,对小数据块进行解析;S3,将解析后的数据渲染至页面展示。
[0006]在步骤S1中,多线程技术采用调用线程池方法实现,具体包括:步骤1:调用init()方法初始化线程池,开启timer()定时器;步骤2:调用getTask()方法获取队列任务,判读任务是否存在,如果存在任务则执行步骤3,如果不存在任务则等待任务;步骤3:调用getFreeWorker()方法获取可用worker,判断是否存在可用worker,不存在则继续获取可用worker,存在则执行步骤4;步骤4:调用worker执行,标记worker状态为不可用,在任务执行完成后,标记worker状态为可用,执行步骤2。
[0007]在步骤S1中,拉取多数据源包括:对数据源的内容和类型进行优先级排序,在任务数量超过线程池线程数量时,对任务的优先级进行定义,对值类型的数据优先、集合数据次之、组件最后。
[0008]在步骤S2中,对从数据源中获得的数据进行下载包括:在浏览器端开始接收数据
时对流中的数据进行获取;数据解析,对于集合、对象类数据,利用编写的JSON数据解析工具,在读取流数据的同时进行解析。
[0009]进一步,利用编写的JSON数据解析工具,在读取流数据的同时进行解析中,进行JSON解析预处理,将数据流中字符以{开始,以}结束的对象部分字符集切割,将数据流中字符以[开始,以]结束的数组部分字符集切割;具体包括:步骤i:读取数据流中下一个字符,如果字符存在,执行步骤ii,否则结束流程;步骤ii:判断字符是否等于{,等于{时调用栈push()方法入栈,否则执行步骤iii;步骤iii:判断字符是否等于[,等于[时调用栈push()方法入栈,否则执行步骤iv;步骤iv:判断字符是否等于},等于}时执行步骤v,否则执行步骤vii;步骤v:调用栈pop()方法出栈,判断出栈字符是否等于“{”,不等于时重复执行步骤v,否则执行步骤vi;步骤vi:将步骤v所有的出栈字符利用JSON字符串解析方法进行出栈字符;步骤vii:判断字符是否等于],等于]时执行步骤viii,否则执行步骤x;步骤viii:调用栈pop()方法出栈,判断出栈字符是否等于[,不等于时重复执行步骤viii,否则执行步骤ix;步骤ix:将步骤viii所有的出栈字符利用JSON字符串解析方法进行出栈字符串解析;步骤x:调用栈push()方法入栈,执行步骤i。
[0010]在步骤vi和步骤ix中,JSON字符串解析方法包括:步骤a:输入字符串;步骤b:词法分析,按照JSON构词规则将字符串解析成Token序列;步骤c:语法分析,语法分析过程以词法分析解析出的Token序列作为输入,输出JSON Object或JSON Array。
[0011]在步骤b中,词法分析过程将JSON字符串通过词法解析器UML利用JSON构词规则TokenType解析成Token序列。
[0012]在步骤c中,语法分析流程包括:步骤A:读取下一个token,存在则执行步骤B,不存在结束流程;步骤B:判断是否为字符串token,是字符串token执行步骤C,否则执行步骤A;步骤C:将当前字符串token值去出,作为对象属性key,执行步骤D;步骤D:读取下一个token,此时token应为冒号token,继续执行步骤E;步骤E:读取下一个token,此时token值即为对象属性key对应的值,执行步骤F;步骤F:将属性及其对应值存入JSON Object,继续执行步骤A;语法分析流程进一步包括:步骤I:读取下一个token,存在则执行步骤II,不存在结束流程;步骤II:将当前token值取出,加入JSON Array,继续执行步骤I。
[0013]在步骤S3中,进行渲染包括:将返回数据拆分为多个JSON Object或JSON Array解析后的数据渲染到页面。
[0014]本专利技术的另一目的在于提供一种快速拉取多源数据填充复杂界面表单的系统,实施所述快速拉取多源数据填充复杂界面表单的方法,该系统搭载在浏览器端,包括:
并行拉取多数据源模块,用于采用多线程技术并行拉取多数据源;同时对数据源的内容和类型进行优先级排序;同步加载解析模块,用于对从数据源中获得的数据进行下载的同时将大数据切分为小数据块,对小数据块进行解析;渲染模块,用于将解析后的数据渲染至页面展示。
[0015]结合上述的所有技术方案,本专利技术所具备的优点及积极效果为:本专利技术提供一种在线表格数据快速填充的方法实现,该方法具备支持多数据源、数据清洗、快速填充等特点。本专利技术提出了一种在线表格数据快速填充的方法。利用专用工作者线程服务端提供的信息进行数据的异步、并行式拉取。数据渲染使用流中的数据,不必等到数据全部下载完成。数据渲染采用值优先,组件次之的方式进行填充。
附图说明
[0016]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理;图1是本专利技术实施例提供的快速拉取多源数据填充复杂界面表单的方法流程图;图2是本专利技术实施例提供的快速拉取多源数据填充复杂界面表单的方法整体原理图;图3是本专利技术实施例提供的线程池workerPool类定义图;图4是本专利技术实施例提供的线程池执行流程图;图5是本专利技术实施例提供的JSON数据解析整体流程图;图6是本专利技术实施例提供的stack类图;图7是本专利技术实施例提供的json解析预处理流程图;图8是本专利技术实施例提供的json解析预处理流程图;图9是本专利技术实施例提供的词法解析流程图;图10是本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种快速拉取多源数据填充复杂界面表单的方法,其特征在于,该方法通过多线程并行加载数据、大数据切分小数据块逐步渲染,具体包括以下步骤:S1,在浏览器端采用多线程技术并行拉取多数据源;S2,对从数据源中获得的数据进行下载的同时将大数据切分为小数据块,对小数据块进行解析;S3,将解析后的数据渲染至页面展示。2.根据权利要求1所述的快速拉取多源数据填充复杂界面表单的方法,其特征在于,在步骤S1中,多线程技术采用调用线程池方法实现,具体包括:步骤1:调用init()方法初始化线程池,开启timer()定时器;步骤2:调用getTask()方法获取队列任务,判读任务是否存在,如果存在任务则执行步骤3,如果不存在任务则等待任务;步骤3:调用getFreeWorker()方法获取可用worker,判断是否存在可用worker,不存在则继续获取可用worker,存在则执行步骤4;步骤4:调用worker执行,标记worker状态为不可用,在任务执行完成后,标记worker状态为可用,执行步骤2。3.根据权利要求1所述的快速拉取多源数据填充复杂界面表单的方法,其特征在于,在步骤S1中,拉取多数据源包括:对数据源的内容和类型进行优先级排序,在任务数量超过线程池线程数量时,对任务的优先级进行定义,对值类型的数据优先、集合数据次之、组件最后。4.根据权利要求1所述的快速拉取多源数据填充复杂界面表单的方法,其特征在于,在步骤S2中,对从数据源中获得的数据进行下载包括:在浏览器端开始接收数据时对流中的数据进行获取;数据解析,对于集合、对象类数据,利用编写的JSON数据解析工具,在读取流数据的同时进行解析。5.根据权利要求4所述的快速拉取多源数据填充复杂界面表单的方法,其特征在于,利用编写的JSON数据解析工具,在读取流数据的同时进行解析中,进行JSON解析预处理,将数据流中字符以{开始,以}结束的对象部分字符集切割,将数据流中字符以[开始,以]结束的数组部分字符集切割;具体包括:步骤i:读取数据流中下一个字符,如果字符存在,执行步骤ii,否则结束流程;步骤ii:判断字符是否等于{,等于{时调用栈push()方法入栈,否则执行步骤iii;步骤iii:判断字符是否等于[,等于[时调用栈push()方法入栈,否则执行步骤iv;步骤iv:判断字符是否等于},等于}时执行步骤v,否则执行步骤vii;步骤v:调用栈pop()方法出栈,判断出栈字符是否等于“{”,不等于时重复执行步骤v,否则执行步骤vi;步骤vi:将步骤v所有的出栈字符利用JSON字符串解析方法进行出栈字符;步骤vii:判断字符是否等...

【专利技术属性】
技术研发人员:刘伟孙明椿赵琛周志明薛玲玲
申请(专利权)人:青岛诺亚信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1