一种基于二级缓存机制的可视化大屏数据优化加载方法技术

技术编号:38468236 阅读:16 留言:0更新日期:2023-08-11 14:45
本发明专利技术提出了一种基于二级缓存机制的可视化大屏数据优化加载方法,尤其涉及多服务并发请求环境下,数据平滑可视化方法。本发明专利技术致力于解决在浏览器线程并发受限、前端展示多组件、后端数据高延时的情况下,界面如何最快地加载数据、渲染图表,提升用户对数据可视化大屏的体验效果。通过设计二级数据缓存、默认数据展示、轮询请求周期的机制,让组件在规定时间周期内请求不到服务数据时,读取“更”真实的默认数据,并以一定周期将延迟请求到的服务数据上显展示。据上显展示。据上显展示。

【技术实现步骤摘要】
一种基于二级缓存机制的可视化大屏数据优化加载方法


[0001]本专利技术涉及一种数据优化加载方法,特别是一种基于二级缓存机制的可视化大屏数据优化加载方法。

技术介绍

[0002]单个数据可视化大屏界面通常包含几十上百个展示组件。通常情况下,各组件之间数据隔离,每个组件都通过一个独立的Ajax请求向后台获取数据,而浏览器最多支撑8个Ajax请求同时在线。因此,数据大屏界面数据请求拥塞,一部分组件的数据请求

刷新时间极长,用户体验差。

技术实现思路

[0003]专利技术目的:本专利技术所要解决的技术问题是针对现有技术的不足,提供一种基于二级缓存机制的可视化大屏数据优化加载方法。
[0004]为了解决上述技术问题,本专利技术公开了一种基于二级缓存机制的可视化大屏数据优化加载方法,包括以下步骤:
[0005]步骤1,初始化,将第二级缓存的数据读入第一级缓存;
[0006]所述的第一级缓存,格式为<Key,Value>;其中,值Value={timeStamp,data},timeStamp表示时间戳,data表示图表组件展示数据;键Key为layerId,layerId表示图表图层id;
[0007]所述的第二级缓存,元数据模型即数据结构包括:layerid、data和timestamp,具体如下:
[0008]layerid的类型为Integer,表示图层标识;data的类型为Blob,表示图层的数据JSON格式字符,以二进制格式存储;timestamp的类型为date,表示计算时间戳。
[0009]步骤2,可视化大屏的组件数据采用合并请求和合并返回的方法请求处理数据服务,即在可视化大屏系统中,前端的页面发出一个Ajax请求,后端的控制器Controller层根据页面中组件的个数,将所述请求拆分为多线程任务,进行数据处理;
[0010]所述前端是页面展示部分,包括页面以及页面中的组件;所述后端是应用服务,即逻辑处理层。
[0011]步骤3,设置内存数据空间为第一级缓存,后端的控制器Controller层接收到请求后首先查找一级缓存时效范围内的数据,如果找到则读取一级缓存的缓存数据并将该数据反馈给前端页面,如果未找到则执行异步线程executeRequest;
[0012]步骤4,执行异步线程executeRequest:设置超时时长,即异步线程executeRequest等待数据响应的超时时长,使用异步线程调用数据服务,即根据请求调用的数据服务未超时或超时,分别执行步骤4

1或步骤4

2;
[0013]步骤4

1,当请求调用的数据服务未超时,则异步线程将数据服务结果返回给控制器Controller层,最终返回给页面;
[0014]步骤4

2,当请求调用的数据服务超时,则读取第二级缓存数据,并将数据返回给控制器Controller层,最终返回给页面;所述的第二级缓存为数据库级缓存,存放页面中各图层的默认数据;
[0015]步骤5,在步骤3中数据服务请求成功后,将请求的数据存入第一级缓存和二级缓存。
[0016]所述可视化大屏数据加载的请求流程,包括:后端请求流程和前端请求流程;其中,前端请求流程,即前端页面一次性请求页面中所有组件数据;后端请求流程,即后端根据不同组件拆分为不同的指标数据请求的线程来获取组件指标数据。
[0017]所述的后端请求流程,具体步骤如下:
[0018]步骤a1,初始化数据请求处理线程池;
[0019]步骤a2,将控制器Controller层接收的请求,拆分成多线程,放入线程池;
[0020]步骤a2

1,子线程即拆分出的每个线程,即每个组件都有一个请求自己指标数据的线程,该子线程向组件自己的数据提供服务请求;
[0021]步骤a2

2,子线程返回相应的结果;
[0022]步骤a2

3,子线程将响应的结果数据同步至第一级缓存和第二级缓存;
[0023]步骤a3,判断所有线程是否都已经反馈数据,根据判断结果,分别执行步骤a3

1或步骤a3

2;
[0024]步骤a3

1,若判断为是,则跳转执行步骤a4;
[0025]步骤a3

2,若判断为否,则判断请求是否超时,并根据是否超时分别执行步骤a3
‑2‑
1或步骤a3
‑2‑
2;
[0026]步骤a3
‑2‑
1,若判断为超时,则获取未反馈组件的标识,跳转执行步骤a4;
[0027]步骤a3
‑2‑
2,若判断为不超时,则延时等待0.1s,并跳转执行步骤a3;
[0028]步骤a4,读取第一级缓存,将读取得到的数据返回给控制器Controller层。
[0029]所述的前端请求流程,具体包括以下步骤:
[0030]步骤b1,前端的页面第1次向后端的控制器Controller层请求数据;
[0031]步骤b2,从后端的控制器Controller层获取第1次数据响应,并加载组件数据;
[0032]步骤b3,判断页面所有组件数据是否都反馈完毕,根据判断结果分别执行步骤b3

1或步骤b3

1;
[0033]步骤b3

1,若是,则跳转执行步骤b4;
[0034]步骤b3

2,若否,则跳转执行步骤b3
‑2‑
1;
[0035]步骤b3
‑2‑
1,延时第一时长T1;
[0036]步骤b3
‑2‑
2,前端页面第2次请求数据;
[0037]步骤b3
‑2‑
3,获取第2次数据响应,并加载组件数据;
[0038]步骤b3
‑2‑
4,判断页面所有组件数据是否都反馈完毕,根据判断结果分别执行步骤b3
‑2‑4‑
1或步骤b3
‑2‑4‑
2;
[0039]步骤b3
‑2‑4‑
1,若是,则跳转步骤b4;
[0040]步骤b3
‑2‑4‑
2,若否,跳转执行步骤b3
‑2‑4‑2‑
1;
[0041]步骤b3
‑2‑4‑2‑
1,延时第二时长T2;
[0042]步骤b3
‑2‑4‑2‑
2,前端页面第2次请求数据;
[0043]步骤b3
‑2‑4‑2‑
3,获取第2次数据响应,并加载组件数据;
[0044]步骤b4,结束。
[0045]所述的第一时长T1与第二时长T2本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于二级缓存机制的可视化大屏数据优化加载方法,其特征在于,包括以下步骤:步骤1,初始化,将第二级缓存的数据读入第一级缓存;步骤2,可视化大屏的组件数据采用合并请求和合并返回的方法请求处理数据服务,即在可视化大屏系统中,前端的页面发出一个Ajax请求,后端的控制器Controller层根据页面中组件的个数,将所述请求拆分为多线程任务,进行数据处理;步骤3,设置内存数据空间为第一级缓存,后端的控制器Controller层接收到请求后首先查找一级缓存时效范围内的数据,如果找到则读取一级缓存的缓存数据并将该数据反馈给前端页面,如果未找到则执行异步线程executeRequest;步骤4,执行异步线程executeRequest:设置超时时长,即异步线程executeRequest等待数据响应的超时时长,使用异步线程调用数据服务,即根据请求调用的数据服务未超时或超时,分别执行步骤4

1或步骤4

2;步骤4

1,当请求调用的数据服务未超时,则异步线程将数据服务结果返回给控制器Controller层,最终返回给页面;步骤4

2,当请求调用的数据服务超时,则读取第二级缓存数据,并将数据返回给控制器Controller层,最终返回给页面;所述的第二级缓存为数据库级缓存,存放页面中各图层的默认数据;步骤5,在步骤3中数据服务请求成功后,将请求的数据存入第一级缓存和二级缓存。2.根据权利要求1所述的一种基于二级缓存机制的可视化大屏数据优化加载方法,其特征在于,步骤1中所述的第一级缓存,格式为<Key,Value>;其中,值Value={timeStamp,data},timeStamp表示时间戳,data表示图表组件展示数据;键Key为layerId,layerId表示图表图层id;所述的第二级缓存,元数据模型即数据结构包括:layerid、data和timestamp,具体如下:layerid的类型为Integer,表示图层标识;data的类型为Blob,表示图层的数据JSON格式字符,以二进制格式存储;timestamp的类型为date,表示计算时间戳。3.根据权利要求2所述的一种基于二级缓存机制的可视化大屏数据优化加载方法,其特征在于,步骤2中所述前端是页面展示部分,包括页面以及页面中的组件;所述后端是应用服务,即逻辑处理层。4.根据权利要求3所述的一种基于二级缓存机制的可视化大屏数据优化加载方法,其特征在于,所述可视化大屏数据优化加载的请求流程,包括:后端请求流程和前端请求流程;其中,前端请求流程,即前端页面一次性请求页面中所有组件数据;后端请求流程,即后端根据不同组件拆分为不同的指标数据请求的线程来获取组件指标数据。5.根据权利要求4所述的一种基于二级缓存机制的可视化大屏数据优化加载方法,其特征在于,所述的后端请求流程,具体步骤如下:步骤a1,初始化数据请求处理线程池;步骤a2,将控制器Controller层接收的请求,拆分成多线程,放入线程池;步骤a2

1,子线程即拆分出的每个线程,即每个组件都有一个请求自己指标数据的线程,该子线程向组件自己的数据提供服务请求;
步骤a2

2,子线程返回相应的结果;步骤a2

3,子线程将响应的结果数据同步至第一级缓存和第二级缓存;步骤a3,判断所有线程是否都已经反馈数据,根据判断结果,分别执行步骤a3

1或步骤a3

2;步骤a3

1,若判断为是,则跳转执行步骤a4;步骤a3

2,若判断为否,则判断请求是否超时,并根据是否超时分别执行步骤a3
‑2‑
1或步骤a3
‑2‑
2;步骤a3
‑2‑
1,若判断为超时,则获取未反馈组件的标识,跳转执行步骤a4;步骤a3
‑2‑
2,若判断为...

【专利技术属性】
技术研发人员:朱子杰孟德鑫陆保国黄婧贲婷婷吴潇伟
申请(专利权)人:中国电子科技集团公司第二十八研究所
类型:发明
国别省市:

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

1