一种通过时间片轮转加载大量数据的方法及装置与流程

文档序号:21971437发布日期:2020-08-25 19:01阅读:355来源:国知局
一种通过时间片轮转加载大量数据的方法及装置与流程

本发明涉及ui显示技术领域,特别是涉及一种通过时间片轮转加载大量ui数据的方法及装置。



背景技术:

随着科技的不断发展,对于数据的重要性也也来越重视,随之记录的数据也越来越多。对记录的数据展示一般都通过软件来加载整理和显示给用户看。当数据量很大的时候就会遇到一些问题。

一般解决大数据显示的问题主要用以下方法解决,使用分页显示,比如每页显示100条记录,通过上一页下一页切换,每次显示一小部分数据。上述的方法能解决加载卡的问题,但也会存在一些不友好的地方,用户查看数据的时候完整性不是很高,一次只能看到一部分,如果前后数据需要对比查看的时候就不是那么方便。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种通过时间片轮转加载大量数据的方法及装置,以在大量数据加载的时候可以一次加载完整的数据,并且保障主程序能够正常执行,不出现卡顿的问题,保障程序稳定流程运行。

为达上述目的,本发明提供一种通过时间片轮转加载大量数据的方法,包括如下步骤:

步骤s1,于主程序响应加载数据任务时,获取主程序当前需要加载的数据量,根据获取的数据量启动一定时器;

步骤s2,根据定时器,主程序每隔若干时间调用数据加载任务,每次加载少量数据,直至本次加载任务的所有数据加载完成;

步骤s3,当本次加载任务的所有数据都加载完成后,关闭所述定时器,本次数据加载任务完成。

优选地,于步骤s1中,于获取的当前需要加载的数据量超过一预设阈值时,启动所述定时器。

优选地,于步骤s2中,所述主程序每次调用数据加载任务时,加载预设数量的少量数据。

优选地,于步骤s2中,根据定时器,每隔1~5毫秒调用一次加载任务。

优选地,于步骤s2中,每次加载5~10条数据。

为达到上述目的,本发明还提供一种通过时间片轮转加载大量数据的系统,包括:

定时器启动单元,用于在主程序响应加载数据任务时,获取主程序当前需要加载的数据量,于当前需要加载的数据量较大时,启动一定时器;

时间片轮转启动单元,用于根据所述定时器,使主程序每隔若干时间调用数据加载任务,每次加载少量数据,直至本次加载任务的所有数据加载完成;

定时器关闭单元,用于于本次加载任务的所有数据都加载完成后,关闭所述定时器。

优选地,所述定时器启动单元于获取的当前需要加载的数据量超过一预设阈值时,启动所述定时器。

优选地,所述主程序每次调用数据加载任务时,加载预设数量的少量数据。

优选地,所述时间片轮转启动单元根据定时器,使所述主程序每隔1~5毫秒调用一次加载任务。

优选地,所述时间片轮转启动单元使所述主程序每次加载5~10条数据。

与现有技术相比,本发明一种通过时间片轮转加载大量数据的方法及装置通过在主程序响应加载数据任务时,获取主程序当前需要加载的数据量,根据获取的数据量启动一定时器,然后根据定时器,主程序每隔若干时间调用数据加载任务,每次加载少量数据,直至本次加载任务的所有数据加载完成,实现了加载显示大量数据能一次加载完成,同时也保证主程序的正常运行的问题。大大增加了用户体验,同时也能保存程序运行流畅,减少程序卡死奔溃的可能。

附图说明

图1为本发明一种通过时间片轮转加载大量数据的方法的步骤流程图;

图2为本发明一种通过时间片轮转加载大量数据的系统的系统架构图;

图3为现有技术中不采用时间片轮转的方法一次加载大量数据的时间片模拟示意图;

图4为本发明采用时间片轮转的方法一次加载大量数据的时间片模拟示意图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

根据背景技术可知,导致主程序卡死的原因是因为,时间都被加载数据功能占用了,有时候主程序只需要几微秒的时间来处理自己的事件,但是因为无法分配到时间导致卡死,所以只要间歇性的给主程序一点时间,则可以解决卡顿的问题。因此,本发明采用时间片轮转的方法来加载大量数据,即在需要加载大量数据ui显示的时候,一次加载过程中分出一些时间给主程序,具体可设置一个定时器,每隔若干时间(例如1毫秒)加载少量数据(例如5条数据),其原理则为每加载5条数据,加载任务让出1毫秒时间以让主程序处理下需要处理的事件,然后继续加载,如此循环,直到加载完成。

图1为本发明一种通过时间片轮转加载大量数据的方法的步骤流程图。如图1所示,本发明一种通过时间片轮转加载大量数据的方法,包括如下步骤:

步骤s1,于主程序响应加载数据任务时,获取主程序当前需要加载的数据量,于当前需要加载的数据量较大时,启动一定时器。

在本发明具体实施例中,当主程序响应加载数据时,首先会获取当前需要加载的数据量,于当前需要加载的数据量超过一预设阈值时,启动定时器。也就是说,只有当数据量较大可能会产生卡顿时,才需启动定时器,而在需要加载的数据量较小时,本就不会产生卡顿现象,则无需启动定时器进行后续处理。

步骤s2,根据定时器,主程序每隔若干时间调用数据加载任务,每次加载少量数据,直至本次加载任务的所有数据加载完成,以使每次加载数据后,主程序可以有少量时间处理自己的时间,让程序流畅的运行。

在本发明具体实施例中,根据定时器,每隔1~5毫秒调用一次加载程序,每次加载5~10条数据,也就是说,主线程每隔1~5毫秒加载一次少量数据,本发明通过加载完该5~10条数据后让出若干时间给主线程处理业务逻辑以使得主线程能及时处理自己的事件,让程序流畅的运行(5~10条数据的加载时间很短,用户几乎感觉不到),。例如加载5条数据的时间是5ms,定时时间为1ms,那具体的时间线则是,第一个5ms为加载数据(理论上该5ms时间的页面是卡住的,但是由于时间很短,5ms的卡顿用户是无感的),加载完成,暂停1ms,然后继续加载5ms,暂停1ms,依此类推,即留给了主线程1ms时间来处理其业务逻辑,从而使得程序能够流畅的运行。

步骤s3,当本次加载任务的所有数据都加载完成后,关闭所述定时器,本次数据加载任务完成。

图2为本发明一种通过时间片轮转加载大量数据的系统的系统架构图。如图2所示,本发明一种通过时间片轮转加载大量数据的系统,包括:

定时器启动单元201,用于在主程序响应加载数据任务时,获取主程序当前需要加载的数据量,于当前需要加载的数据量较大时,启动一定时器。

在本发明具体实施例中,当主程序响应加载数据时,首先会获取当前需要加载的数据量,于当前需要加载的数据量超过一预设阈值时,启动定时器。也就是说,只有当数据量较大可能会产生卡顿时,才需启动定时器,而在需要加载的数据量较小时,本就不会产生卡顿现象,则无需启动定时器进行后续处理。

时间片轮转启动单元202,用于根据定时器,使主程序每隔若干时间调用数据加载任务,每次加载少量数据,直至本次加载任务的所有数据加载完成,以使每次加载数据后,主程序可以有少量时间处理自己的时间,让程序流畅的运行。

在本发明具体实施例中,时间片轮转启动单元202根据定时器,每隔1~5毫秒调用一次加载程序,每次加载5~10条数据,也就是说,每隔1~5毫秒加载一次少量数据,把间隔的1~5毫秒时间,交给主线程处理业务逻辑,这样可以保证主程序能及时处理自己的事件,让程序流畅的运行。

定时器关闭单元203,用于于本次加载任务的所有数据都加载完成后,关闭所述定时器,本次数据加载任务完成。

图3为现有技术中不采用时间片轮转的方法一次加载大量数据的时间片模拟示意图,现有技术中,如果一次加载大量数据的时候就需要暂用一整块时间块,例如加载10万条数据要5秒,那么在那5秒内,往往会导致主程序所有别的事件都阻塞着无法执行,主程序是卡死的,不仅用户体验不好,还容易导出程序卡死奔溃。

图4为本发明采用时间片轮转的方法一次加载大量数据的时间片模拟示意图,根据本发明,利用定时器可以将加载任务的时间片切成很小的一份一份,在加载大量数据的同时间隔地将小时间片提供给主程序响应,从而不会导致程序卡死。

综上所述,本发明一种通过时间片轮转加载大量数据的方法及装置通过在主程序响应加载数据任务时,获取主程序当前需要加载的数据量,根据获取的数据量启动一定时器,然后根据定时器,主程序每隔若干时间调用数据加载任务,每次加载少量数据,直至本次加载任务的所有数据加载完成,实现了加载显示大量数据能一次加载完成,同时也保证主程序的正常运行的问题。大大增加了用户体验,同时也能保存程序运行流畅,减少程序卡死奔溃的可能。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1