专利名称:数据加载装置和数据加载方法
技术领域:
本发明涉及界面加载技术领域,具体而言,涉及一种数据加载装置和一种数据加载方法。
背景技术:
在ERP系统中有大量的单据列表查询,由于数据记录数很多,在同一页或同一屏中无法显示所有的数据,因此往往采用分页或滚动方式来浏览数据。但在相关技术中,在选择进入下一页/或滚动至未显示的数据记录时,需要触发新的查询执行,这样会造成用户界面响应的暂时性停顿,需要用户等待一下才能看到新的 数据记录。因此,需要一种新的数据加载技术,可以使得用户在进行翻页或滚屏浏览查询到的数据记录时,减少用户的等待时间,给用户带来更好、更流畅的操作体验。
发明内容
本发明正是基于上述问题,提出了一种新的数据加载技术,可以使得用户在进行翻页或滚屏浏览查询到的数据记录时,减少用户的等待时间,给用户带来更好、更流畅的操作体验。有鉴于此,本发明提出了一种数据加载装置,包括数据查询单元,用于启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录,并存储在缓存中;预加载单元,用于在所述前台查询线程完成对指定页/屏的加载后,当所述数据记录无法在所述指定页/屏中完整显示时,开启后台预加载线程从缓存中获取预设数据量的后页/屏的数据记录以进行预加载;异步加载单元,用于根据接收到的翻页/屏命令,由所述前台查询线程从所述预加载单元预加载的所述后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。在该技术方案中,当查询到的数据记录较多时,无法在同一页或同一屏中完整地进行显示,则需要采用分页或分屏滚动的方式进行查看。以分页的方式为例,当用户选择查看某页数据记录时,完成对该页的加载和显示,并且对于该页的下一页的数据记录,也提前进行预加载,即仅加载但不进行显示,则当用户选择进入下一页时,无需实时加载,从而缩短加载时间,便于用户获得平滑、顺畅的浏览体验。这里的后页/屏的数据记录并不限于下一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。由于对于数据查询后的实时加载和数据的预加载分别采用了前台查询线程和后台预加载线程这两个线程,从而将正常加载和预加载分离、分别管理,从而在异步加载的过程中,进一步降低了对于前台的处理压力。在上述技术方案中,优选地,所述预加载单元还用于在所述指定页/屏存在前页/屏的情况下,利用所述后台预加载线程从缓存中获取预设数据量的前页/屏的数据记录以进行预加载;以及所述异步加载单元还用于根据接收到的翻页/屏命令,由所述前台查询线程从预加载的所述前页/屏的数据记录中获取用于上一页/屏的数据记录,以进行加载。在该技术方案中,当用户向前翻页或滚动界面时,由于数据记录的预加载,同样可以减少实时加载的时间,获得更好的使用体验。同样地,这里的前页/屏也不限于上一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。在上述技术方案中,优选地,还包括权限设置单元,用于设置是否允许对所述指定页/屏的前页/屏进行预加载,和/或用于设置是否允许对所述指定页/屏的后页/屏进行预加载。在该技术方案中,用户可以根据实际情况和需求,选择是否执行预加载或仅使用某一部分的预加载功能。 在上述技术方案中,优选地,还包括加载数量设置单元,用于设置允许进行预加载的页/屏数。在该技术方案中,通过对预加载的页/屏数进行设置,从而可以根据如客户端物理机器的配置情况、实际可能的使用需求等,实现个性化设置。在上述技术方案中,优选地,还包括行数设置单元,用于设置每页/屏允许显示的数据行数。根据本发明的又一方面,还提出了一种数据加载方法,包括步骤202,启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录,并存储在缓存中;步骤204,在所述前台查询线程完成对指定页/屏的加载后,若所述数据记录无法在所述指定页/屏中完整显示,则开启后台预加载线程从缓存中获取预设数据量的后页/屏的数据记录以进行预加载;步骤206,根据接收到的翻页/屏命令,所述前台查询线程从预加载的所述后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。在该技术方案中,当查询到的数据记录较多时,无法在同一页或同一屏中完整地进行显示,则需要采用分页或分屏滚动的方式进行查看。以分页的方式为例,当用户选择查看某页数据记录时,完成对该页的加载和显示,并且对于该页的下一页的数据记录,也提前进行预加载,即仅加载但不进行显示,则当用户选择进入下一页时,无需实时加载,从而缩短加载时间,便于用户获得平滑、顺畅的浏览体验。这里的后页/屏的数据记录并不限于下一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。由于对于数据查询后的实时加载和数据的预加载分别采用了前台查询线程和后台预加载线程这两个线程,从而将正常加载和预加载分离、分别管理,从而在异步加载的过程中,进一步降低了对于前台的处理压力。在上述技术方案中,优选地,还包括若所述指定页/屏存在前页/屏,则利用所述后台预加载线程从缓存中获取预设数据量的前页/屏的数据记录以进行预加载;所述前台查询线程根据接收到的翻页/屏命令,从预加载的所述前页/屏的数据记录中获取用于上一页/屏的数据记录,以进行加载。在该技术方案中,当用户向前翻页或滚动界面时,由于数据记录的预加载,同样可以减少实时加载的时间,获得更好的使用体验。同样地,这里的前页/屏也不限于上一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。在上述技术方案中,优选地,还包括设置是否允许对所述指定页/屏的前页/屏进行预加载;和/或设置是否允许对所述指定页/屏的后页/屏进行预加载。在该技术方案中,用户可以根据实际情况和需求,选择是否执行预加载或仅使用某一部分的预加载功能。在上述技术方案中,优选地,还包括设置允许进行预加载的页/屏数。在该技术方案中,通过对预加载的页/屏数进行设置,从而可以根据如客户端物理机器的配置情况、实际可能的使用需求等,实现个性化设置。在上述技术方案中,优选地,还包括设置每页/屏允许显示的数据行数。通过以上技术方案,可以使得用户在进行翻页或滚屏浏览查询到的数据记录时,减少用户的等待时间,给用户带来更好、更流畅的操作体验。
图I示出了根据本发明的实施例的数据加载装置的框图;图2示出了根据本发明的实施例的数据加载方法的流程图;图3示出了根据本发明的实施例的数据缓存结构的示意图。
具体实施例方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式
对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。图I示出了根据本发明的实施例的数据加载装置的框图。如图I所示,根据本发明的实施例的数据加载装置100,包括数据查询单元102,用于启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录,并存储在缓存中;预加载单元106,用于在所述前台查询线程完成对指定页/屏的加载后,当所述数据记录无法在所述指定页/屏中完整显示时,开启后台预加载线程从缓存中获取预设数据量的后页/屏的数据记录以进行预加载;异步加载单元108,用于根据接收到的翻页/屏命令,由所述前台查询线程从所述预加载单元106预加载的所述后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。在该技术方案中,当查询到的数据记录较多时,无法在同一页或同一屏中完整地进行显示,则需要采用分页或分屏滚动的方式进行查看。以分页的方式为例,当用户选择查看某页数据记录时,完成对该页的加载和显示,并且对于该页的下一页的数据记录,也提前进行预加载,即仅加载但不进行显示,则当用户选择进入下一页时,无需实时加载,从而缩短加载时间,便于用户获得平滑、顺畅的浏览体验。这里的后页/屏的数据记录并不限于下一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。由于对于数据查询后的实时加载和数据的预加载分别采用了前台查询线程和后台预加载线程这两个线程,从而将正常加载和预加载分离、分别管理,从而在异步加载的过程中,进一步降低了对于前台的处理压力。
在上述技术方案中,优选地,所述预加载单元106还用于在所述指定页/屏存在前页/屏的情况下,利用所述后台预加载线程从缓存中获取预设数据量的前页/屏的数据记录以进行预加载;以及所述异步加载单元108还用于根据接收到的翻页/屏命令,由所述前台查询线程从预加载的所述前页/屏的数据记录中获取用于上一页/屏的数据记录,以进行加载。在该技术方案中,当用户向前翻页或滚动界面时,由于数据记录的预加载,同样可以减少实时加载的时间,获得更好的使用体验。同样地,这里的前页/屏也不限于上一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。在上述技术方案中,优选地,还包括权限设置单元110,用于设置是否允许对所述指定页/屏的前页/屏进行预加载,和/或用于设置是否允许对所述指定页/屏的后页/屏进行预加载。
在该技术方案中,用户可以根据实际情况和需求,选择是否执行预加载或仅使用某一部分的预加载功能。在上述技术方案中,优选地,还包括加载数量设置单元112,用于设置允许进行预加载的页/屏数。在该技术方案中,通过对预加载的页/屏数进行设置,从而可以根据如客户端物理机器的配置情况、实际可能的使用需求等,实现个性化设置。在上述技术方案中,优选地,还包括行数设置单元114,用于设置每页/屏允许显示的数据行数。图2示出了根据本发明的实施例的数据加载方法的流程图。如图2所示,根据本发明的实施例的数据加载方法,包括步骤202,启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录,并存储在缓存中。对于数据的缓存,主要包括I. I数据缓存结构以sessionID为key、数据记录的列表为value的Map (列表序号即为行序号),其结构示意图具体如图3所示。I. 2数据获取I. 2. I传入sessionID、开始行、终止行。I. 2. 2 处理a)根据sessionID获得对应列表,以开始行为起始序号,终止行为结束序号,逐行按序号获得列表中的对应数据项。b)若某序号对应的数据项未加载,则启动后台线程,调用数据加载执行,传入当前序号。c)若分页单元中,当前页码>0,则在页码锁上等待,否则在序号锁上等待。I. 2. 3返回获得的数据项列表。I. 3数据添加I. 3. I传入sessionID、开始序号、数据集。I. 3. 2 处理a)根据sessionID获得对应列表。
b)遍历数据集,以开始序号为起始序号向上一步获得的列表中添加数据。而在此之前,还需要进行接口的定义,包括2. I参数定义2. I. I传入每页行数、数据对象名(也可以是数据库表名)、数据对象主键、显示列、查询条件。2. I. 2 处理a)生成sessionID,以sessionID为key,缓存传入的数据。b)初始化分页管理单元。
c)调用预加载单元,进行首次处理。2. I. 3 返回sessionID。2. 2按页获取数据接口2. 2. I 传入sessionID、页码。2. 2. 2 处理a)开始行=(页码-I) *每页行数+1。b)终止行=页码*每页行数。2. 2. 3返回调用按行获取数据接口,传入sessionID、开始行、终止行。2. 3按行获取数据接口2. 3. I传入sessionID、开始行、终止行。2. 3. 2返回调用“数据缓存管理单元一数据获取”,传入sessionID、开始行、终止行。步骤204,在所述前台查询线程完成对指定页/屏的加载后,若所述数据记录无法在同一页/屏中完整显示,则开启后台预加载线程从缓存中获取预设数据量的后页/屏的数据记录以进行预加载。在数据记录无法在同一页/屏中完整显示时,需要进行分页处理,包括3. I维护以下对象3. I. I分页索引表内存中的一个数组。3. I. 2每页的数据行数。3. I. 3当前页码初始化时置为I。3. 2获取ID集合3. 2. I传入起始序号,终止序号。3. 2. 2处理以起始序号开始、终止序号结束,遍历数组。3. 2. 3返回返回遍历数组得到的ID列表。这里涉及对于数据的正常加载步骤和预加载步骤,其中,对于数据的正常加载步骤,包括4. I加载策略定义4. I. I每次加载行数。4. I. 2是否加载前一页。4. I. 3是否加载后一页。4. 2数据加载执行
4. 2. I传入起始序号。4. 2. 2 处理a)页码=分页管理单元.当前页码。b)若页码>0,锁定页码锁,否则锁定序号锁(起始序号)。 c)终止序号=起始序号+每次加载行数。d)调用分页管理单元一获取ID集合,传入起始序号。e)根据获得的数据ID集合,构造查询条件“数据对象名.主键名”in (ID集合)。f)将显示列、查询对象、上一步构造的查询条件为参数调用查询引擎。g)将返回的数据集合调用数据缓存管理——数据添加,传入起始序号,上一步获得的数据集。h)释放锁,并通知等待的线程。i)若是否加载后一页=true,则以后一页为页码重复步骤a) I),若是否加载前一页=true,则以前一页为页码重复步骤arh)。对于数据的预加载步骤,包括5. I首次加载处理a)调用查询引擎查询对象传入“参数定义.数据对象”,显示列传入“参数定义.数据对象”,查询条件传入“参数定义.查询条件”。b)将返回的主键(ID)集合交给分页管理单元。c)进入预加载数据。5. 2预加载数据启动后台线程,若分页单元.当前页码对应的首记录未加载,则启动后台线程,调用数据加载单元——数据加载执行。步骤206,根据接收到的翻页/屏命令,所述前台查询线程从预加载的所述后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。在该技术方案中,当查询到的数据记录较多时,无法在同一页或同一屏中完整地进行显示,则需要采用分页或分屏滚动的方式进行查看。以分页的方式为例,当用户选择查看某页数据记录时,完成对该页的加载和显示,并且对于该页的下一页的数据记录,也提前进行预加载,即仅加载但不进行显示,则当用户选择进入下一页时,无需实时加载,从而缩短加载时间,便于用户获得平滑、顺畅的浏览体验。这里的后页/屏的数据记录并不限于下一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。由于对于数据查询后的实时加载和数据的预加载分别采用了前台查询线程和后台预加载线程这两个线程,从而将正常加载和预加载分离、分别管理,从而在异步加载的过程中,进一步降低了对于前台的处理压力。对前台查询线程和后台预加载线程的管理可以称为锁管理,具体包括6. I 页码锁按页码序数来管理的锁,主要为协调数据请求与数据加载两个线程一般该锁由数据加载线程向锁管理单元申请创建,当数据请求到达时,若该页数据尚不存在,则等待在该锁上,待数据加载线程释放该锁后,数据请求线程可获得该锁并得到需要的数据。6. 2行序数锁按行序数来管理的锁,原理同页码锁。
6. 3sessionID 锁用户连续点击时在此锁等待,避免同一查询反复执行。在上述技术方案中,优选地,还包括若所述指定页/屏存在前页/屏,则利用所述后台预加载线程从缓存中获取预设数据量的前页/屏的数据记录以进行预加载;所述前台查询线程根据接收到的翻页/屏命令,从预加载的所述前页/屏的数据记录中获取用于上一页/屏的数据记录,以进行加载。在该技术方案中,当用户向前翻页或滚动界面时,由于数据记录的预加载,同样可以减少实时加载的时间,获得更好的使用体验。同样地,这里的前页/屏也不限于上一页/屏的数据记录,而是可以根据预设置的数据量,预加载多个页/屏的数据记录。在上述技术方案中,优选地,还包括设置是否允许对所述指定页/屏的前页/屏进行预加载;和/或设置是否允许对所述指定页/屏的后页/屏进行预加载。 在该技术方案中,用户可以根据实际情况和需求,选择是否执行预加载或仅使用某一部分的预加载功能。在上述技术方案中,优选地,还包括设置允许进行预加载的页/屏数。在该技术方案中,通过对预加载的页/屏数进行设置,从而可以根据如客户端物理机器的配置情况、实际可能的使用需求等,实现个性化设置。在上述技术方案中,优选地,还包括设置每页/屏允许显示的数据行数。以上结合附图详细说明了本发明的技术方案,考虑到相关技术中,对于在ERP系统中查询到的单据数据记录,当用户进行翻页或滚动界面时,会出现卡顿的现象,因此,本发明提供了一种数据加载装置和一种数据加载方法,可以使得用户在进行翻页或滚屏浏览查询到的数据记录时,减少用户的等待时间,给用户带来更好、更流畅的操作体验。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据加载装置,其特征在于,包括 数据查询单元,用于启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录,并存储在缓存中; 预加载单元,用于在所述前台查询线程完成对指定页/屏的加载后,当所述数据记录无法在所述指定页/屏中完整显示时,开启后台预加载线程从缓存中获取预设数据量的后页/屏的数据记录以进行预加载; 异步加载单元,用于根据接收到的翻页/屏命令,由所述前台查询线程从所述预加载单元预加载的所述后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。
2.根据权利要求I所述的数据加载装置,其特征在于, 所述预加载单元还用于在所述指定页/屏存在前页/屏的情况下,利用所述后台预加载线程从缓存中获取预设数据量的前页/屏的数据记录以进行预加载;以及 所述异步加载单元还用于根据接收到的翻页/屏命令,由所述前台查询线程从预加载的所述前页/屏的数据记录中获取用于上一页/屏的数据记录,以进行加载。
3.根据权利要求2所述的数据加载装置,其特征在于,还包括 权限设置单元,用于设置是否允许对所述指定页/屏的前页/屏进行预加载,和/或用于设置是否允许对所述指定页/屏的后页/屏进行预加载。
4.根据权利要求I至3中任一项所述的数据加载装置,其特征在于,还包括 加载数量设置单元,用于设置允许进行预加载的页/屏数。
5.根据权利要求I至3中任一项所述的数据加载装置,其特征在于,还包括 行数设置单元,用于设置每页/屏允许显示的数据行数。
6.一种数据加载方法,其特征在于,包括 步骤202,启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录,并存储在缓存中; 步骤204,在所述前台查询线程完成对指定页/屏的加载后,若所述数据记录无法在所述指定页/屏中完整显示,则开启后台预加载线程从缓存中获取预设数据量的后页/屏的数据记录以进行预加载; 步骤206,根据接收到的翻页/屏命令,所述前台查询线程从预加载的所述后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。
7.根据权利要求6所述的数据加载方法,其特征在于,还包括 若所述指定页/屏存在前页/屏,则利用所述后台预加载线程从缓存中获取预设数据量的前页/屏的数据记录以进行预加载; 所述前台查询线程根据接收到的翻页/屏命令,从预加载的所述前页/屏的数据记录中获取用于上一页/屏的数据记录,以进行加载。
8.根据权利要求7所述的数据加载方法,其特征在于,还包括 设置是否允许对所述指定页/屏的前页/屏进行预加载;和/或 设置是否允许对所述指定页/屏的后页/屏进行预加载。
9.根据权利要求6至8中任一项所述的数据加载方法,其特征在于,还包括 设置允许进行预加载的页/屏数。
10.根据权利要求6至8中任一项所述的数据加载方法,其特征在于,还包括设置每页/屏允许显示的数 据行数。
全文摘要
本发明提供了一种数据加载装置,包括数据查询单元,用于启动前台查询线程,根据接收到的查询条件,从ERP系统中获取对应的数据记录;预加载单元,用于在所述前台查询线程完成对指定页/屏的加载后,当数据记录无法在所述指定页/屏中完整显示时,开启后台预加载线程预加载预设数据量的后页/屏的数据记录;异步加载单元,用于根据接收到的翻页/屏命令,由所述前台查询线程从后页/屏的数据记录中获取用于下一页/屏的数据记录,以进行加载。本发明还提出了一种数据加载方法。通过本发明的技术方案,可以使得用户在进行翻页或滚屏浏览查询到的数据记录时,减少用户的等待时间,给用户带来更好、更流畅的操作体验。
文档编号G06F9/445GK102968322SQ201210480750
公开日2013年3月13日 申请日期2012年11月22日 优先权日2012年11月22日
发明者李均会, 赵波, 陈翊 申请人:用友软件股份有限公司