自学习的界面数据加载系统和方法
【技术领域】
[0001] 本发明涉及数据处理领域,具体地,涉及一种自学习的界面数据加载系统和方法。
【背景技术】
[0002] 当前的应用中,操作人员经常需要录入大量的数据,并且这些数据中大部分都是 重复录入的,在现在的应用系统,特别是企业管理软件应用系统中,目前的处理主要是记录 上一次的录入数据或者直接按照用户设置的默认值进行处理,虽然能满足部分用户的需 求,但对于需要切换多种录入界面的用户来说,用户体验不好。本专利提供了一种自学习的 界面预加载方法,在保证灵活性的基础上自动带入用户常用的数据,提高用户的使用体验。
[0003] 当前为解决这个问题普遍采用的思路是缓存用户常用数据或者设置默认值的方 式实现的。缓存数据,可以解决部分录入问题,但当用户切换录入界面时,缓存有时加载不 出来或者加载错误,另外缓存大多是在客户端的,当用户使用不同的客户端时,体验不好。 默认值方式,由于数据固定,不能及时反映用户的最新数据,所以体验上有问题。
[0004]
【发明内容】
[0005] 本发明的目的在于,针对上述问题,提出一种自学习的界面数据加载系统和方法, 以实现保证内存占用的前提下提高界面数据录入效率的优点。
[0006] 为实现上述目的,本发明采用的技术方案是: 一种自学习的界面数据加载方法,包括: 建立统计信息表,并将统计信息表保存在服务器端,所述统计信息表内插入的信息包 括,界面标识、界面数据标示、客户端数据信息和统计信息; 基于上述统计信息表构建内存缓存模型,在每调用一个功能的时候构建一个缓存,在 关闭该功能的时候释放缓存,缓存包括统计信息缓存和界面缓存两部分; 计算当前界面的界面标示,按照设定的数量取得优先权数最高的前η个界面数据,并将 上述内存缓存模型内的数据加载到对应的界面,且更新上述统计信息表中的信息。
[0007] 优选的,所述统计信息表的数据调用具体为: 根据界面标示判断是否存在统计信息表,如果不存在,调用新增函数; 如果存在,调用界面数据处理函数; 优选的,所述新增函数具体包括: 将计算出的界面标识插入到统计信息表中,同时将客户端的数据信息及统计信息插入 统计信息表中。
[0008] 优选的,所述界面标识是根据用户、站点或界面ID计算得出的。
[0009] 优选的,所述统计信息,包括界面数据标示、界面数据、界面调用次数、界面最后使 用时间和权值。
[0010]优选的,所述界面数据处理函数,具体包括, 计算界面标示; 判断该界面标识在统计信息表的数据统计表中是否存在 如存在,则将使用次数+1,更新最后使用时间,计算优先权值,并将数据保存至统计信 息表; 如不存在,则创建统计信息表,将使用次数设置为1,更新最后使用时间为提交时间,计 算优先权值,并将数据保存至统计信息表。
[0011]优选的,所述统计信息缓存由一个以优先级排序的队列和一个以界面标示为键, 统计信息为值的map结构组成; 所述界面缓存是一个以界面标示为键,界面数据实例为值的map。
[0012] 优选的,还包括设置生成界面标示的维度的步骤。
[0013] 同时本发明技术方案还公开一种自学习的界面数据加载系统,包括,统计信息表 获取模块、内存缓存模型建立模块和数据加载模块; 所述统计信息表获取模块,获取统计信息表,所述统计信息表内插入的信息包括,界面 标识、界面数据标示、客户端数据信息和统计信息; 所述内存缓存模型建立模块,基于所述统计信息表构建内存缓存模型,在每调用一个 功能的时候构建一个缓存,在关闭该功能的时候释放缓存,缓存包括统计信息缓存和界面 缓存两部分; 所述数据加载模块:计算当前界面的界面标示,按照设定的数量取得优先权数最高的 前η个界面数据,并将上述内存缓存模型内的数据加载到对应的界面,且更新上述统计信息 表中的信息。
[0014] 优选的,还包括用户设置模块,所述用户设置模块,用于设置生成界面标示的维 度。
[0015] 本发明的技术方案具有以下有益效果: 本发明在首次使用时没有统计信息就没有预加载,所以使用体验没有提升,随着使用 者使用,根据使用者的使用习惯,统计信息将丰富,预加载数据的命中率将大大提高。从而 达到保证内存占用的前提下提高界面数据录入的效率。
[0016]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【附图说明】
[0017] 图1为本发明实施例所述的自学习的界面数据加载方法的流程图; 图2为本发明实施例所述的自学习的界面数据加载系统的原理框图; 图3为本发明实施例所述的统计信息结构示意图。
【具体实施方式】
[0018] 以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实 施例仅用于说明和解释本发明,并不用于限定本发明。
[0019]如图1所示,一种自学习的界面数据加载方法,包括: 建立统计信息表,并将统计信息表保存在服务器端,统计信息表内插入的信息包括,界 面标识、界面数据标示、客户端数据信息和统计信息; 基于上述统计信息表构建内存缓存模型,在每调用一个功能的时候构建一个缓存,在 关闭该功能的时候释放缓存,缓存包括统计信息缓存和界面缓存两部分; 计算当前界面的界面标示,按照设定的数量取得优先权数最高的前η个界面数据,并将 上述内存缓存模型内的数据加载到对应的界面,且更新上述统计信息表中的信息。
[0020] 其中,统计信息表的数据调用具体为: 根据界面标示判断是否存在统计信息表,如果不存在,调用新增函数; 如果存在,调用界面数据处理函数; 新增函数具体包括: 将计算出的界面标识插入到统计信息表中,同时将客户端的数据信息及统计信息插入 统计信息表中。
[0021] 界面标识是根据用户、站点或界面ID计算得出的。
[0022] 统计信息,包括界面数据标示、界面数据、界面调用次数、界面最后使用时间和权 值。
[0023]界面数据处理函数,具体包括, 计算界面标示; 判断该界面标识在统计信息表的数据统计表中是否存在 如存在,则将使用次数+1,更新最后使用时间,计算优先权值,并将数据保存至统计信 息表; 如不存在,则创建统计信息表,将使用次数设置为1,更新最后使用时间为提交时间,计 算优先权值,并将数据保存至统计信息表。
[0024] 统计信息缓存由一个以优先级排序的队列和一个以界面标示为键,统计信息为值 的map结构组成; 界面缓存是一个以界面标示为键,界面数据实例为值的map。
[0025] 优选的,还包括设置生成界面标示的维度的步骤。
[0026]如图2所示,一种自学习的界面数据加载系统,包括,统计信息表获取模块、内存缓 存模型建立模块和数据加载模块; 统计信息表获取模块,获取统计信息表,统计信息表内插入的信息包括,界面标识、界 面数据标示、客户端数据信息和统计信息; 内存缓存模型建立模块,基于统计信息表构建内存缓存模型,在每调用一个功能的时 候构建一个缓存,在关闭该功能的时候释放缓存,缓存包括统计信息缓存和界面缓存两部 分; 数据加载模块:计算当前界面的界面标示,按照设定的数量取得优先权数最高的前η个 界面数据,并将上述内存缓存模型内的数据加载到对应的界面,且更新上述统计信息表中 的信息。
[0027]系统还包括用户设置模块,用户设置模块,用于设置生成界面标示的维度。
[0028]本方案主要思路是统计使用者的使用习惯和使用时间,根据使用者使用过的界 面,对其数据内容进行优先级评分,打开界面时将该界面对应的评分高的第一个界面数据 加载并且写入界面数据中,同时根据用户设置缓存最高的前η个界面的数据。当缓存容量超 过预先设定的限额时,缓存根据最近使用算法进行置换将不常用的界面数据置换出缓存以 保证内存占用量。
[0029] 具体实现如下: 首先需要建立统计信息表用于记录某个
使用者在某个界面使用某套数据的频度、最后 使用时间以及优先级评分信息,其结构如表1和表2所示。
[0030] 表1、用户和界面主表。
[0031] 表2、数据统计表。
[0032] 统计信息表在系统初次使用时为空,当用户使用了某种界面后,就会调用新增函 数进行处理。
[0033]新增函数描述如下: 将根据用户,站点,界面ID等维度计算出的唯一标识插入到主表中,同时也将客户端的 数据信息及其统计信息(界面数据标示,界面数据,界面调用次数、界面最后使用时间和由 权值公式计算出来的权值)插入表中。
[0034]表中的权值决定了此种模板对于某个用户的使用频繁程度,权值越高,则此用户 越倾向于使用此界面。权值的计算由公式给出,比如: priority=A氺num+B氺time, 公式中,num和t ime就是表中的num和t ime,分别代表此界面的使用次数和最后使用时 间,A和B代表了 num和time各自的重要程度百分比(可以根据具体应用要求来平衡使用频度 和最近使用时间对优先加载的影响),如果界面的使用次数越多,而且最后使用时间与现在 时间越接近,那么计算出的权值越大,则说明用户经常使用此界面,在预加载界面时应优先 考虑。
[0035]再次使用时,由开发者将本函数注册到用户操作中进行触发,作如下处理: 需要根据界面标示判断是否存在主表数据,如果不存在,调用新增函数; 如果存在; 调用界面数据处理函数。
[0036] 界面处理函数描述如下: 计算界面标示; 判断该标识在某套数据统计表中是否存在; 存在,使用次数+1,更新最后使用时间,计算优先权值,保存数据; 不存在,创建记录,设置界面标示和界面数据,设置使用次数=1,更新最后使用时间为 提交时间,计算优先权值,保存数据。
[0037] (1)统计信息表在服务器端存储; (2)建立内存缓存模型:为了保证客户端的内存占用量,不在客户端实现常驻内存的缓 存,而是在每打开一个功能的时候构建一个缓存,在关闭功能的时候释放缓存。缓存包括统 计信息缓存和界面缓存两部分。统计信息缓存包括一个以优先级排序的队列和一个以界面 标示为键,统计信息为值的map结构组成。界面缓存是一个以界面标示为键,界面数据实例 为值的map。统计信息结构如图3所示。
[0038] (3)加载过程:界面打开时,通过独立的线程构建缓存和预加载界面,在专利界面 的预加载装置和预加载方法中已解决。本发明技术方案要解决的是数据的加载,具体如下: 首先,在缓存加载时,通过保存的统计信息构建统计信息缓存结构。根据当前界面的计 算维度计算界面标示,按照预定的数量取得优先权数最高的前η个界面数据,并将第一套数 据加载到对应的界面,并且将统计信息中的相应界面的最后使用时间更新为当前时间,并 且使用次数增加一次。如果统计信息中没有信息,则构建空的统计信息模型和界面缓存模 型,同时使用原有的缓存或者默认值设置方案进行数据加载。
[0039] (4)统计信息更新:当用户关闭功能时,根据统计信息中的使用时间、次数信息计 算每个界面数据的优先权重并记录到数据库表中,经验数据以供下次加载使用。
[0040] (5)用户设置:提供设置界面,设置生成界面标示的维度,可以是所有界面数据以 及环境数据。设置后,根据获取到的数据,提供实时生成界面标示的算法。例如:将所有维度 拼成长字符串,进行MD5运算,生成唯一的key等方法,由用户自行设定选择。
[0041]最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明, 尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可 以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。
【主权项】
1. 一种自学习的界面数据加载方法,其特征在于,包括: 建立统计信息表,并将统计信息表保存在服务器端,所述统计信息表内插入的信息包 括,界面标识、界面数据标示、客户端数据信息和统计信息; 基于上述统计信息表构建内存缓存模型,在每调用一个功能的时候构建一个缓存,在 关闭该功能的时候释放缓存,缓存包括统计信息缓存和界面缓存两部分; 计算当前界面的界面标示,按照设定的数量取得优先权数最高的前η个界面数据,并将 上述内存缓存模型内的数据加载到对应的界面,且更新上述统计信息表中的信息。2. 根据权利要求1所述的自学习的界面数据加载方法,其特征在于,所述统计信息表的 数据调用具体为: 根据界面标示判断是否存在统计信息表,如果不存在,调用新增函数; 如果存在,调用界面数据处理函数。3. 根据权利要求2所述的自学习的界面数据加载方法,其特征在于,所述新增函数具体 包括: 将计算出的界面标识插入到统计信息表中,同时将客户端的数据信息及统计信息插入 统计信息表中。4. 根据权利要求3所述的自学习的界面数据加载方法,其特征在于,所述界面标识是根 据用户、站点或界面ID计算得出的。5. 根据权利要求3所述的自学习的界面数据加载方法,其特征在于,所述统计信息,包 括界面数据标示、界面数据、界面调用次数、界面最后使用时间和权值。6. 根据权利要求2所述的自学习的界面数据加载方法,其特征在于,所述界面数据处理 函数,具体包括, 计算界面标示; 判断该界面标识在统计信息表的数据统计表中是否存在 如存在,则将使用次数+1,更新最后使用时间,计算优先权值,并将数据保存至统计信 息表; 如不存在,则创建统计信息表,将使用次数设置为1,更新最后使用时间为提交时间,计 算优先权值,并将数据保存至统计信息表。7. 根据权利要求1至6任一所述的自学习的界面数据加载方法,其特征在于,所述统计 信息缓存由一个以优先级排序的队列和一个以界面标示为键,统计信息为值的map结构组 成; 所述界面缓存是一个以界面标示为键,界面数据实例为值的map。8. 根据权利要求1至6任一所述的自学习的界面数据加载方法,其特征在于,还包括设 置生成界面标示的维度的步骤。9. 一种自学习的界面数据加载系统,其特征在于,包括,统计信息表获取模块、内存缓 存模型建立模块和数据加载模块; 所述统计信息表获取模块,获取统计信息表,所述统计信息表内插入的信息包括,界面 标识、界面数据标示、客户端数据信息和统计信息; 所述内存缓存模型建立模块,基于所述统计信息表构建内存缓存模型,在每调用一个 功能的时候构建一个缓存,在关闭该功能的时候释放缓存,缓存包括统计信息缓存和界面 缓存两部分; 所述数据加载模块:计算当前界面的界面标示,按照设定的数量取得优先权数最高的 前η个界面数据,并将上述内存缓存模型内的数据加载到对应的界面,且更新上述统计信息 表中的信息。10.根据权利要求9所述的自学习的界面数据加载系统,其特征在于,还包括用户设置 模块,所述用户设置模块,用于设置生成界面标示的维度。
【专利摘要】本发明公开了一种自学习的界面数据加载系统和方法,其中,自学习的界面数据加载方法,包括:建立统计信息表,并将统计信息表保存在服务器端,所述统计信息表内插入的信息包括,界面标识、界面数据标示、客户端数据信息和统计信息;基于上述统计信息表构建内存缓存模型,在每调用一个功能的时候构建一个缓存,在关闭该功能的时候释放缓存,缓存包括统计信息缓存和界面缓存两部分;计算当前界面的界面标示,按照设定的数量取得优先权数最高的前n个界面数据,并将上述内存缓存模型内的数据加载到对应的界面,且更新上述统计信息表中的信息。达到保证内存占用的前提下提高界面数据录入的效率。
【IPC分类】G06F9/445
【公开号】CN105487900
【申请号】CN201510865012
【发明人】罗涛
【申请人】用友网络科技股份有限公司
【公开日】2016年4月13日
【申请日】2015年12月1日