一种基于缓加载技术展示大量业务对象的方法_2

文档序号:8299152阅读:来源:国知局
041]服务器端servlet接收到业务组件返回的查询结果或者直接从缓存中获取的结果,进行格式转换,格式化为可以展示的json格式数据传送到客户端(把业务数据转换成人可以读懂的数据),客户端浏览器在表格控件中展示获取的数据。
[0042]需要说明的是,每次向服务器端请求数据,服务器端的业务组件记录上次请求的位置,在上次请求位置的基础上继续加载一定量的数据,转换为业务对象,应用业务规则;如果有符合条件的业务对象,则返回这些数据对象,如果没有符合条件的业务对象,业务组件继续循环加载数据,直至有符合条件的业务对象,或者所有数据全部加载完毕。
[0043]业务组件记录所有符合业务规则的业务对象,都存储在缓存中。
[0044]新页的可能性有两种:1.回退的分页,比如:已经到达过第二页,目前为第三页,回退到第二页;2.全新的翻页,即尚未到达过该页,可能缓存中已经缓存了该页的部分数据,或者没有数据,或者全部数据。如果有全部数据,则一次性返回从start开始到limit之间的数据;如果没有数据,则执行一次查询。
[0045]在设置符合条件数据集时,searchObject:设置搜索结果为所有缓存内容。有搜索条件时,搜索的范围首先是所有缓存中的对象,如果没有搜索到数据,则从业务组件中继续获取数据,并进行搜索,直到有符合条件的数据,或者所有数据加载完毕。
[0046]对数据集足够大的判定:1.数据集不为空;2.数据集的大小大于要求的起始值。
[0047]是否排序的判定:同时满足1.场景要求排序;2.数据位于第一页。如果为第二页,则此时不能重新排序,否则第一页的数据可能排到第三页。
[0048]取结果集时,根据计算的start和limit取值结果集。排序仅限于对已经加载到缓存的数据进行排序,执行排序后,首先要跳转到第一页,根据start和limit从缓存中获取排序后的结果集。
[0049]请参见图2,图2是客户端的ajax的数据展示逻辑图。客户端首先准备参数,向服务器端发送请求,传入当前请求的参数并接收数据。客户端获取返回的结果,展示数据到表格中,更新界面的状态,使原界面在请求数据过程中不可操作的界面在获取数据后变为可操作状态,客户端的表格控件根据返回结果数量与当前页面已经展示数据数量的关系,继续提交请求或者结束请求。客户端接收到返回结果后,根据返回结果中的数据数量、表格中已经展示的业务对象数量、当前需要展示的业务对象数量计算出可以追加到表格中的数据数量,把数据追加到表格中,并根据表格数据的数量和当前需要展示的对象数量决定是否再次向服务器端发送请求,直到表格中的数量满足当前需要展示的数量或者服务器端查询结束。客户端首先判断返回数据是否为空,是则不能继续查询数据,否则计算表格中可以填充的数据。不能继续查询数据时判断是否已经到了最后页,是则回退最大页码并结束,显示当前页的上一页并结束,否则直接结束。根据表格中可填充的数据设置最大页码,并在表格中增加数据,判断是否填满数据,是则结束,否则设置再次请求参数并发送请求。
[0050]需要说明的是,客户端向服务器端发送请求时,采用ajax异步加载的方式传递展示业务对象需要的参数。客户端的ajax准备的参数包括当前表格中数据的个数curGridRecordsLength,当前页码curPage,当前最大的页码maxPage (用于控制上一页下一页),是否可以继续向下一页查询canNextQuery。
[0051]计算表格中可以填充的数据时,可以追加的记录总条数指:1.每页显示的条数与当前表格中已有剩余的数量;2.当前返回数据的数量,取最小值。
[0052]判断当前页是否为最后页时,表格中记录为空、当前页等于最大页均当作最后页来判定。
[0053]设置最大页码时,如果需要添加的记录数量小于等于返回的记录数量,并且当前页是最后一页,则增加页码。
[0054]设置再次请求参数时,设置newRequest = false。
[0055]综上所述,本发明一种基于缓加载技术展示大量业务对象的方法的具体步骤如下:
[0056](I)、服务器端Servlet准备查询的前置条件;
[0057](2)、客户端向服务器端发送请求,即客户端向服务器端传入当前请求的参数;
[0058](3)、服务器端Servlet获取步骤(2)中请求的参数并采取措施;
[0059](4)、服务器端Servlet根据步骤⑴中的前置条件向业务层提交查询请求,业务组件根据记录的查询游标从数据库查询指定数量的数据,对查询后的数据进行权限校验,并返回通过权限校验的数据;
[0060](5)、服务器端Servlet接收到业务组件返回的查询结果或者直接从缓存中获取的结果,进行格式转换,即把业务数据转换成人可以读懂的数据,并返回数据到客户端;
[0061]¢)、客户端获取返回的结果,展示数据到表格中,更新界面的状态,使原界面在请求数据过程中不可操作的界面在获取数据后变为可操作状态,客户端的表格控件根据返回结果数量与当前页面已经展示数据数量的关系,判断继续提交请求或者结束请求。
[0062]以上所述仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员,在不脱离本发明的前提下,还可以对本本发明做出的若干改进和补充,这些改进和补充,也应视为本发明的保护范围。
【主权项】
1.一种基于缓加载技术展示大量业务对象的方法,其特征在于,包括以下步骤: (1)、服务器端Servlet准备查询的前置条件; (2)、客户端向服务器端发送请求,即客户端向服务器端传入当前请求的参数; (3)、服务器端Servlet获取步骤(2)中请求的参数并采取措施; (4)、服务器端Servlet根据步骤(I)中的前置条件向业务层提交查询请求,业务组件根据记录的查询游标从数据库查询指定数量的数据,对查询后的数据进行权限校验,并返回通过权限校验的数据; (5)、服务器端Servlet接收到业务组件返回的查询结果或者直接从缓存中获取的结果,进行格式转换,即把业务数据转换成人可以读懂的数据,并返回数据到客户端; (6)、客户端获取返回的结果,展示数据到表格中,更新界面的状态,使原界面在请求数据过程中不可操作的界面在获取数据后变为可操作状态,客户端的表格控件根据返回结果数量与当前页面已经展示数据数量的关系,判断继续提交请求或者结束请求。
2.根据权利要求1所述的一种基于缓加载技术展示大量业务对象的方法,其特征在于,步骤(I)中的前置条件具体为建立数据库连接、准备缓存、准备客户端请求的过滤、加载格式化配置文件、缓存查询的游标数据、上一次查询的结果,上次查询后记录的查询游标。
3.根据权利要求1所述的一种基于缓加载技术展示大量业务对象的方法,其特征在于,步骤(2)中的当前请求的参数包括请求场景、是否有新请求、是否请求新页、请求的起始页码和请求条数。
4.根据权利要求1所述的一种基于缓加载技术展示大量业务对象的方法,其特征在于,步骤(3)中的服务器端Servlet采取的措施包括:根据请求场景从缓存中获取前置条件、根据是否新请求重置查询结果、根据是否请求新页确定缓存的查询结构是否有足够的数据、根据请求的起始页码和请求条数确定应该返回缓存中的哪部分数据。
5.根据权利要求1所述的一种基于缓加载技术展示大量业务对象的方法,其特征在于,步骤(2)中客户端向服务器端发送请求时,采用ajax异步加载的方式传递展示业务对象需要的参数。
6.根据权利要求1所述的一种基于缓加载技术展示大量业务对象的方法,其特征在于,步骤(4)中的服务器端Servlet根据前置条件向业务层提交查询请求,业务组件移动查询游标查询数据,进行权限过滤后并返回结果的具体步骤为:业务组件从数据库中加载数据,转换为业务对象,对业务对象应用业务规则进行过滤,返回符合业务规则的业务对象。
7.根据权利要求1所述的一种基于缓加载技术展示大量业务对象的方法,其特征在于,步骤(6)中服务器端Servlet接收到业务组件返回的查询结果或者直接从缓存中获取的结果进行格式化并返回到客户端的具体步骤为:数据展示层把业务对象格式化可以展示的json格式数据传送到客户端,客户端浏览器在表格控件中展示获取的数据。
8.根据权利要求1所述的一种基于缓加载技术展示大量业务对象的方法,其特征在于,所述的客户端每次向服务器端请求数据,服务器端的业务组件记录上次请求的位置,在上次请求位置的基础上继续加载一定量的数据,转换为业务对象,应用业务规则;如果有符合业务规则的业务对象,则返回这些数据对象;如果没有符合业务规则的业务对象,业务组件继续循环加载数据,直至有符合条件的业务对象,或者所有数据全部加载完毕。
9.根据权利要求1所述的一种基于缓加载技术展示大量业务对象的方法,其特征在于,所述的业务组件记录所有已加载过并且符合业务规则的业务对象,并存储在缓存中。
10.根据权利要求1所述的一种基于缓加载技术展示大量业务对象的方法,其特征在于,所述的客户端接收到返回结果后,根据返回结果中的数据数量、表格中已经展示的业务对象数量、当前需要展示的业务对象数量计算出可以追加到表格中的数据数量,把数据追加到表格中,并根据表格数据的数量和当前需要展示的对象数量决定是否再次向服务器端发送请求,直到表格中的数量满足当前需要展示的数量或者服务器端查询结束。
【专利摘要】本发明涉及一种基于缓加载技术展示大量业务对象的方法,包括以下步骤:服务器端Servlet准备查询的前置条件;客户端向服务器端传入请求参数;服务器端Servlet获取参数并采取措施;服务器端Servlet提交查询请求,业务组件查询数据,进行权限校验,并返回数据;服务器端Servlet接收到返回的查询结果或者从缓存中获取的结果,进行格式转换,返回数据到客户端;客户端将结果展示到表格中,表格控件判断继续提交或者结束请求。本发明的优点体现在:实现了一种基于复杂业务对象大量数据情况下的分页展示方法,该方法不仅满足复杂业务对象应用业务规则的需要,还解决了传统方式所存在的数据量大导致表格中数据展示慢的问题,用户可以在尽可能短的时间内查看到数据。
【IPC分类】G06F17-30
【公开号】CN104615726
【申请号】CN201510065289
【发明人】李天立, 单承方, 温小龙, 郑博文
【申请人】北京神舟航天软件技术有限公司
【公开日】2015年5月13日
【申请日】2015年2月6日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1