《数据加载装置和数据加载方法.pdf》由会员分享,可在线阅读,更多相关《数据加载装置和数据加载方法.pdf(12页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102968322 A(43)申请公布日 2013.03.13CN102968322A*CN102968322A*(21)申请号 201210480750.4(22)申请日 2012.11.22G06F 9/445(2006.01)(71)申请人用友软件股份有限公司地址 100094 北京市海淀区北清路68号用友软件园(72)发明人李均会 赵波 陈翊(74)专利代理机构北京友联知识产权代理事务所(普通合伙) 11343代理人尚志峰 汪海屏(54) 发明名称数据加载装置和数据加载方法(57) 摘要本发明提供了一种数据加载装置,包括:数据查询单元,用于启动前台查询线程,根。
2、据接收到的查询条件,从ERP系统中获取对应的数据记录;预加载单元,用于在所述前台查询线程完成对指定页/屏的加载后,当数据记录无法在所述指定页/屏中完整显示时,开启后台预加载线程预加载预设数据量的后页/屏的数据记录;异步加载单元,用于根据接收到的翻页/屏命令,由所述前台查询线程从后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。本发明还提出了一种数据加载方法。通过本发明的技术方案,可以使得用户在进行翻页或滚屏浏览查询到的数据记录时,减少用户的等待时间,给用户带来更好、更流畅的操作体验。(51)Int.Cl.权利要求书2页 说明书7页 附图2页(19)中华人民共和国国家知识产权局(12。
3、)发明专利申请权利要求书 2 页 说明书 7 页 附图 2 页1/2页21.一种数据加载装置,其特征在于,包括:数据查询单元,用于启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录,并存储在缓存中;预加载单元,用于在所述前台查询线程完成对指定页/屏的加载后,当所述数据记录无法在所述指定页/屏中完整显示时,开启后台预加载线程从缓存中获取预设数据量的后页/屏的数据记录以进行预加载;异步加载单元,用于根据接收到的翻页/屏命令,由所述前台查询线程从所述预加载单元预加载的所述后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。2.根据权利要求1所述的数据加载装置,其特征在。
4、于,所述预加载单元还用于:在所述指定页/屏存在前页/屏的情况下,利用所述后台预加载线程从缓存中获取预设数据量的前页/屏的数据记录以进行预加载;以及所述异步加载单元还用于:根据接收到的翻页/屏命令,由所述前台查询线程从预加载的所述前页/屏的数据记录中获取用于上一页/屏的数据记录,以进行加载。3.根据权利要求2所述的数据加载装置,其特征在于,还包括:权限设置单元,用于设置是否允许对所述指定页/屏的前页/屏进行预加载,和/或用于设置是否允许对所述指定页/屏的后页/屏进行预加载。4.根据权利要求1至3中任一项所述的数据加载装置,其特征在于,还包括:加载数量设置单元,用于设置允许进行预加载的页/屏数。5。
5、.根据权利要求1至3中任一项所述的数据加载装置,其特征在于,还包括:行数设置单元,用于设置每页/屏允许显示的数据行数。6.一种数据加载方法,其特征在于,包括:步骤202,启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录,并存储在缓存中;步骤204,在所述前台查询线程完成对指定页/屏的加载后,若所述数据记录无法在所述指定页/屏中完整显示,则开启后台预加载线程从缓存中获取预设数据量的后页/屏的数据记录以进行预加载;步骤206,根据接收到的翻页/屏命令,所述前台查询线程从预加载的所述后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。7.根据权利要求6所述的数据加载。
6、方法,其特征在于,还包括:若所述指定页/屏存在前页/屏,则利用所述后台预加载线程从缓存中获取预设数据量的前页/屏的数据记录以进行预加载;所述前台查询线程根据接收到的翻页/屏命令,从预加载的所述前页/屏的数据记录中获取用于上一页/屏的数据记录,以进行加载。8.根据权利要求7所述的数据加载方法,其特征在于,还包括:设置是否允许对所述指定页/屏的前页/屏进行预加载;和/或设置是否允许对所述指定页/屏的后页/屏进行预加载。9.根据权利要求6至8中任一项所述的数据加载方法,其特征在于,还包括:设置允许进行预加载的页/屏数。10.根据权利要求6至8中任一项所述的数据加载方法,其特征在于,还包括:权 利 要。
7、 求 书CN 102968322 A2/2页3设置每页/屏允许显示的数据行数。权 利 要 求 书CN 102968322 A1/7页4数据加载装置和数据加载方法技术领域0001 本发明涉及界面加载技术领域,具体而言,涉及一种数据加载装置和一种数据加载方法。背景技术0002 在ERP系统中有大量的单据列表查询,由于数据记录数很多,在同一页或同一屏中无法显示所有的数据,因此往往采用分页或滚动方式来浏览数据。0003 但在相关技术中,在选择进入下一页/或滚动至未显示的数据记录时,需要触发新的查询执行,这样会造成用户界面响应的暂时性停顿,需要用户等待一下才能看到新的数据记录。0004 因此,需要一种新。
8、的数据加载技术,可以使得用户在进行翻页或滚屏浏览查询到的数据记录时,减少用户的等待时间,给用户带来更好、更流畅的操作体验。发明内容0005 本发明正是基于上述问题,提出了一种新的数据加载技术,可以使得用户在进行翻页或滚屏浏览查询到的数据记录时,减少用户的等待时间,给用户带来更好、更流畅的操作体验。0006 有鉴于此,本发明提出了一种数据加载装置,包括:数据查询单元,用于启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录,并存储在缓存中;预加载单元,用于在所述前台查询线程完成对指定页/屏的加载后,当所述数据记录无法在所述指定页/屏中完整显示时,开启后台预加载线程从缓存中获取。
9、预设数据量的后页/屏的数据记录以进行预加载;异步加载单元,用于根据接收到的翻页/屏命令,由所述前台查询线程从所述预加载单元预加载的所述后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。0007 在该技术方案中,当查询到的数据记录较多时,无法在同一页或同一屏中完整地进行显示,则需要采用分页或分屏滚动的方式进行查看。以分页的方式为例,当用户选择查看某页数据记录时,完成对该页的加载和显示,并且对于该页的下一页的数据记录,也提前进行预加载,即仅加载但不进行显示,则当用户选择进入下一页时,无需实时加载,从而缩短加载时间,便于用户获得平滑、顺畅的浏览体验。这里的后页/屏的数据记录并不限于下一页。
10、/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。由于对于数据查询后的实时加载和数据的预加载分别采用了前台查询线程和后台预加载线程这两个线程,从而将正常加载和预加载分离、分别管理,从而在异步加载的过程中,进一步降低了对于前台的处理压力。0008 在上述技术方案中,优选地,所述预加载单元还用于:在所述指定页/屏存在前页/屏的情况下,利用所述后台预加载线程从缓存中获取预设数据量的前页/屏的数据记录以进行预加载;以及所述异步加载单元还用于:根据接收到的翻页/屏命令,由所述前台查说 明 书CN 102968322 A2/7页5询线程从预加载的所述前页/屏的数据记录中获取用于上一页。
11、/屏的数据记录,以进行加载。0009 在该技术方案中,当用户向前翻页或滚动界面时,由于数据记录的预加载,同样可以减少实时加载的时间,获得更好的使用体验。同样地,这里的前页/屏也不限于上一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。0010 在上述技术方案中,优选地,还包括:权限设置单元,用于设置是否允许对所述指定页/屏的前页/屏进行预加载,和/或用于设置是否允许对所述指定页/屏的后页/屏进行预加载。0011 在该技术方案中,用户可以根据实际情况和需求,选择是否执行预加载或仅使用某一部分的预加载功能。0012 在上述技术方案中,优选地,还包括:加载数量设置单元,用于。
12、设置允许进行预加载的页/屏数。0013 在该技术方案中,通过对预加载的页/屏数进行设置,从而可以根据如客户端物理机器的配置情况、实际可能的使用需求等,实现个性化设置。0014 在上述技术方案中,优选地,还包括:行数设置单元,用于设置每页/屏允许显示的数据行数。0015 根据本发明的又一方面,还提出了一种数据加载方法,包括:步骤202,启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录,并存储在缓存中;步骤204,在所述前台查询线程完成对指定页/屏的加载后,若所述数据记录无法在所述指定页/屏中完整显示,则开启后台预加载线程从缓存中获取预设数据量的后页/屏的数据记录以进行预加。
13、载;步骤206,根据接收到的翻页/屏命令,所述前台查询线程从预加载的所述后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。0016 在该技术方案中,当查询到的数据记录较多时,无法在同一页或同一屏中完整地进行显示,则需要采用分页或分屏滚动的方式进行查看。以分页的方式为例,当用户选择查看某页数据记录时,完成对该页的加载和显示,并且对于该页的下一页的数据记录,也提前进行预加载,即仅加载但不进行显示,则当用户选择进入下一页时,无需实时加载,从而缩短加载时间,便于用户获得平滑、顺畅的浏览体验。这里的后页/屏的数据记录并不限于下一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的。
14、数据记录。由于对于数据查询后的实时加载和数据的预加载分别采用了前台查询线程和后台预加载线程这两个线程,从而将正常加载和预加载分离、分别管理,从而在异步加载的过程中,进一步降低了对于前台的处理压力。0017 在上述技术方案中,优选地,还包括:若所述指定页/屏存在前页/屏,则利用所述后台预加载线程从缓存中获取预设数据量的前页/屏的数据记录以进行预加载;所述前台查询线程根据接收到的翻页/屏命令,从预加载的所述前页/屏的数据记录中获取用于上一页/屏的数据记录,以进行加载。0018 在该技术方案中,当用户向前翻页或滚动界面时,由于数据记录的预加载,同样可以减少实时加载的时间,获得更好的使用体验。同样地,。
15、这里的前页/屏也不限于上一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。0019 在上述技术方案中,优选地,还包括:设置是否允许对所述指定页/屏的前页/屏说 明 书CN 102968322 A3/7页6进行预加载;和/或设置是否允许对所述指定页/屏的后页/屏进行预加载。0020 在该技术方案中,用户可以根据实际情况和需求,选择是否执行预加载或仅使用某一部分的预加载功能。0021 在上述技术方案中,优选地,还包括:设置允许进行预加载的页/屏数。0022 在该技术方案中,通过对预加载的页/屏数进行设置,从而可以根据如客户端物理机器的配置情况、实际可能的使用需求等,实现个。
16、性化设置。0023 在上述技术方案中,优选地,还包括:设置每页/屏允许显示的数据行数。0024 通过以上技术方案,可以使得用户在进行翻页或滚屏浏览查询到的数据记录时,减少用户的等待时间,给用户带来更好、更流畅的操作体验。附图说明0025 图1示出了根据本发明的实施例的数据加载装置的框图;0026 图2示出了根据本发明的实施例的数据加载方法的流程图;0027 图3示出了根据本发明的实施例的数据缓存结构的示意图。具体实施方式0028 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特。
17、征可以相互组合。0029 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。0030 图1示出了根据本发明的实施例的数据加载装置的框图。0031 如图1所示,根据本发明的实施例的数据加载装置100,包括:数据查询单元102,用于启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录,并存储在缓存中;预加载单元106,用于在所述前台查询线程完成对指定页/屏的加载后,当所述数据记录无法在所述指定页/屏中完整显示时,开启后台预加载线程从缓存中获取预设数据量的后页/屏。
18、的数据记录以进行预加载;异步加载单元108,用于根据接收到的翻页/屏命令,由所述前台查询线程从所述预加载单元106预加载的所述后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。0032 在该技术方案中,当查询到的数据记录较多时,无法在同一页或同一屏中完整地进行显示,则需要采用分页或分屏滚动的方式进行查看。以分页的方式为例,当用户选择查看某页数据记录时,完成对该页的加载和显示,并且对于该页的下一页的数据记录,也提前进行预加载,即仅加载但不进行显示,则当用户选择进入下一页时,无需实时加载,从而缩短加载时间,便于用户获得平滑、顺畅的浏览体验。这里的后页/屏的数据记录并不限于下一页/屏的数。
19、据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。由于对于数据查询后的实时加载和数据的预加载分别采用了前台查询线程和后台预加载线程这两个线程,从而将正常加载和预加载分离、分别管理,从而在异步加载的过程中,进一步降低了对于前台的处理压力。说 明 书CN 102968322 A4/7页70033 在上述技术方案中,优选地,所述预加载单元106还用于:在所述指定页/屏存在前页/屏的情况下,利用所述后台预加载线程从缓存中获取预设数据量的前页/屏的数据记录以进行预加载;以及所述异步加载单元108还用于:根据接收到的翻页/屏命令,由所述前台查询线程从预加载的所述前页/屏的数据记录中获取用于上。
20、一页/屏的数据记录,以进行加载。0034 在该技术方案中,当用户向前翻页或滚动界面时,由于数据记录的预加载,同样可以减少实时加载的时间,获得更好的使用体验。同样地,这里的前页/屏也不限于上一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。0035 在上述技术方案中,优选地,还包括:权限设置单元110,用于设置是否允许对所述指定页/屏的前页/屏进行预加载,和/或用于设置是否允许对所述指定页/屏的后页/屏进行预加载。0036 在该技术方案中,用户可以根据实际情况和需求,选择是否执行预加载或仅使用某一部分的预加载功能。0037 在上述技术方案中,优选地,还包括:加载数量设置。
21、单元112,用于设置允许进行预加载的页/屏数。0038 在该技术方案中,通过对预加载的页/屏数进行设置,从而可以根据如客户端物理机器的配置情况、实际可能的使用需求等,实现个性化设置。0039 在上述技术方案中,优选地,还包括:行数设置单元114,用于设置每页/屏允许显示的数据行数。0040 图2示出了根据本发明的实施例的数据加载方法的流程图。0041 如图2所示,根据本发明的实施例的数据加载方法,包括:步骤202,启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录,并存储在缓存中。0042 对于数据的缓存,主要包括:0043 1.1数据缓存结构:0044 以session。
22、ID为key、数据记录的列表为value的Map(列表序号即为行序号),其结构示意图具体如图3所示。0045 1.2数据获取:0046 1.2.1传入:sessionID、开始行、终止行。0047 1.2.2处理:0048 a)根据sessionID获得对应列表,以开始行为起始序号,终止行为结束序号,逐行按序号获得列表中的对应数据项。0049 b)若某序号对应的数据项未加载,则启动后台线程,调用数据加载执行,传入当前序号。0050 c)若分页单元中,当前页码0,则在页码锁上等待,否则在序号锁上等待。0051 1.2.3返回获得的数据项列表。0052 1.3数据添加:0053 1.3.1传入:s。
23、essionID、开始序号、数据集。0054 1.3.2处理:0055 a)根据sessionID获得对应列表。说 明 书CN 102968322 A5/7页80056 b)遍历数据集,以开始序号为起始序号向上一步获得的列表中添加数据。0057 而在此之前,还需要进行接口的定义,包括:0058 2.1参数定义:0059 2.1.1传入:每页行数、数据对象名(也可以是数据库表名)、数据对象主键、显示列、查询条件。0060 2.1.2处理:0061 a)生成sessionID,以sessionID为key,缓存传入的数据。0062 b)初始化分页管理单元。0063 c)调用预加载单元,进行首次处理。
24、。0064 2.1.3返回:sessionID。0065 2.2按页获取数据接口:0066 2.2.1传入:sessionID、页码。0067 2.2.2处理:0068 a)开始行=(页码-1)*每页行数+1。0069 b)终止行=页码*每页行数。0070 2.2.3返回:调用按行获取数据接口,传入:sessionID、开始行、终止行。0071 2.3按行获取数据接口:0072 2.3.1传入:sessionID、开始行、终止行。0073 2.3.2返回:调用“数据缓存管理单元数据获取”,传入:sessionID、开始行、终止行。0074 步骤204,在所述前台查询线程完成对指定页/屏的加载后。
25、,若所述数据记录无法在同一页/屏中完整显示,则开启后台预加载线程从缓存中获取预设数据量的后页/屏的数据记录以进行预加载。0075 在数据记录无法在同一页/屏中完整显示时,需要进行分页处理,包括:0076 3.1维护以下对象:0077 3.1.1分页索引表:内存中的一个数组。0078 3.1.2每页的数据行数。0079 3.1.3当前页码:初始化时置为1。0080 3.2获取ID集合:0081 3.2.1传入:起始序号,终止序号。0082 3.2.2处理:以起始序号开始、终止序号结束,遍历数组。0083 3.2.3返回:返回遍历数组得到的ID列表。0084 这里涉及对于数据的正常加载步骤和预加载。
26、步骤,其中,对于数据的正常加载步骤,包括:0085 4.1加载策略定义:0086 4.1.1每次加载行数。0087 4.1.2是否加载前一页。0088 4.1.3是否加载后一页。0089 4.2数据加载执行:说 明 书CN 102968322 A6/7页90090 4.2.1传入:起始序号。0091 4.2.2处理:0092 a)页码=分页管理单元.当前页码。0093 b)若页码0,锁定页码锁,否则锁定序号锁(起始序号)。0094 c)终止序号=起始序号+每次加载行数。0095 d)调用分页管理单元获取ID集合,传入:起始序号。0096 e)根据获得的数据ID集合,构造查询条件:“数据对象名.。
27、主键名”in (ID集合)。0097 f)将显示列、查询对象、上一步构造的查询条件为参数调用查询引擎。0098 g)将返回的数据集合调用数据缓存管理数据添加,传入:起始序号,上一步获得的数据集。0099 h)释放锁,并通知等待的线程。0100 i)若是否加载后一页=true,则以后一页为页码重复步骤a)h),若是否加载前一页=true,则以前一页为页码重复步骤a)h)。对于数据的预加载步骤,包括:0101 5.1首次加载处理:0102 a)调用查询引擎:查询对象传入“参数定义.数据对象”,显示列传入“参数定义.数据对象”,查询条件传入“参数定义.查询条件”。0103 b)将返回的主键(ID)集。
28、合交给分页管理单元。0104 c)进入预加载数据。0105 5.2预加载数据:0106 启动后台线程,若分页单元.当前页码对应的首记录未加载,则启动后台线程,调用数据加载单元数据加载执行。0107 步骤206,根据接收到的翻页/屏命令,所述前台查询线程从预加载的所述后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。0108 在该技术方案中,当查询到的数据记录较多时,无法在同一页或同一屏中完整地进行显示,则需要采用分页或分屏滚动的方式进行查看。以分页的方式为例,当用户选择查看某页数据记录时,完成对该页的加载和显示,并且对于该页的下一页的数据记录,也提前进行预加载,即仅加载但不进行显示。
29、,则当用户选择进入下一页时,无需实时加载,从而缩短加载时间,便于用户获得平滑、顺畅的浏览体验。这里的后页/屏的数据记录并不限于下一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。0109 由于对于数据查询后的实时加载和数据的预加载分别采用了前台查询线程和后台预加载线程这两个线程,从而将正常加载和预加载分离、分别管理,从而在异步加载的过程中,进一步降低了对于前台的处理压力。对前台查询线程和后台预加载线程的管理可以称为锁管理,具体包括:0110 6.1页码锁:0111 按页码序数来管理的锁,主要为协调数据请求与数据加载两个线程:一般该锁由数据加载线程向锁管理单元申请创建,。
30、当数据请求到达时,若该页数据尚不存在,则等待在该锁上,待数据加载线程释放该锁后,数据请求线程可获得该锁并得到需要的数据。0112 6.2行序数锁:0113 按行序数来管理的锁,原理同页码锁。说 明 书CN 102968322 A7/7页100114 6.3sessionID锁:0115 用户连续点击时在此锁等待,避免同一查询反复执行。0116 在上述技术方案中,优选地,还包括:若所述指定页/屏存在前页/屏,则利用所述后台预加载线程从缓存中获取预设数据量的前页/屏的数据记录以进行预加载;所述前台查询线程根据接收到的翻页/屏命令,从预加载的所述前页/屏的数据记录中获取用于上一页/屏的数据记录,以进。
31、行加载。0117 在该技术方案中,当用户向前翻页或滚动界面时,由于数据记录的预加载,同样可以减少实时加载的时间,获得更好的使用体验。同样地,这里的前页/屏也不限于上一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。0118 在上述技术方案中,优选地,还包括:设置是否允许对所述指定页/屏的前页/屏进行预加载;和/或设置是否允许对所述指定页/屏的后页/屏进行预加载。0119 在该技术方案中,用户可以根据实际情况和需求,选择是否执行预加载或仅使用某一部分的预加载功能。0120 在上述技术方案中,优选地,还包括:设置允许进行预加载的页/屏数。0121 在该技术方案中,通过对预。
32、加载的页/屏数进行设置,从而可以根据如客户端物理机器的配置情况、实际可能的使用需求等,实现个性化设置。0122 在上述技术方案中,优选地,还包括:设置每页/屏允许显示的数据行数。0123 以上结合附图详细说明了本发明的技术方案,考虑到相关技术中,对于在ERP系统中查询到的单据数据记录,当用户进行翻页或滚动界面时,会出现卡顿的现象,因此,本发明提供了一种数据加载装置和一种数据加载方法,可以使得用户在进行翻页或滚屏浏览查询到的数据记录时,减少用户的等待时间,给用户带来更好、更流畅的操作体验。0124 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说 明 书CN 102968322 A10。