《一种优化的WEB分页查询方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种优化的WEB分页查询方法及装置.pdf(14页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103425708 A (43)申请公布日 2013.12.04 CN 103425708 A *CN103425708A* (21)申请号 201210165671.4 (22)申请日 2012.05.25 G06F 17/30(2006.01) (71)申请人 金蝶软件 (中国) 有限公司 地址 518000 广东省深圳市南山区深南大道 市高新技术工业村 W1-B4 (72)发明人 张永军 (74)专利代理机构 深圳市深佳知识产权代理事 务所 ( 普通合伙 ) 44285 代理人 唐华明 (54) 发明名称 一种优化的 web 分页查询方法及装置 (57) 摘要 。
2、本发明实施例公开了一种优化的 web 分页查 询方法及装置, 通过异步计算页范围和总记录数, 首先在接收到指定页的分页查询请求后, 先计算 页范围, 再获取页范围内的数据加载显示, 另外 地, 在接收到计算总记录数请求后, 检查缓存中是 否保存有相匹配的总记录数, 没有时则计算总记 录数并更新到缓存中, 如果有直接从缓存中读取, 通过异步计算提高 web 分页查询的响应速度, 而 使用缓存保存总记录数, 则能减少 web 分页查询 时访问数据库的次数, 提高加载效率。 (51)Int.Cl. 权利要求书 2 页 说明书 6 页 附图 5 页 (19)中华人民共和国国家知识产权局 (12)发明专。
3、利申请 权利要求书2页 说明书6页 附图5页 (10)申请公布号 CN 103425708 A CN 103425708 A *CN103425708A* 1/2 页 2 1. 一种优化的 web 分页查询方法, 其特征在于, 包括 : 接收指定条件下指定页的分页查询请求, 并接收与所述指定条件相匹配的计算总记录 数请求 ; 其中, 所述接收指定条件下指定页的分页查询请求之后包括 : 根据所述分页查询请求构造指定页的查询条件 ; 根据所述查询条件计算指定页的页范围 ; 获取所述页范围内的数据并加载到 web 显示页 ; 所述接收与所述指定条件相匹配的计算总记录数请求之后包括 : 判断缓存中是否。
4、保存有与所述指定条件相匹配的总记录数 ; 若是, 则访问缓存读取与所述指定条件相匹配的总记录数并加载到 web 显示页分页显 示 ; 若否, 则计算与所述指定条件相匹配的总记录数, 获取计算后的总记录数将所述总记 录数更新到缓存中, 并加载该总记录数到 web 显示页分页显示。 2. 根据权利要求 1 所述的方法, 其特征在于, 所述获取所述页范围内的数据并加载到 web 显示页包括 : 访问应用层APP, 通过所述应用层APP构造结构化查询语言SQL查询数据库从数据库读 取与所述指定条件相匹配的页范围的数据 ; 获取应用层 APP 读取到页范围的数据 ; 加载所述页范围内的数据。 3. 根据。
5、权利要求 1 所述的方法, 其特征在于, 所述若是则访问缓存读取与所述指定条 件相匹配的总记录数并加载到 web 显示页分页显示之前还包括 : 判断缓存中与所述指定条件相匹配的总记录数是否过期, 若是, 则启动步骤计算与所 述指定条件相匹配的总记录数, 获取计算后的总记录数将所述总记录数更新到缓存中, 并 加载该总记录数到 web 显示页分页显示。 4. 根据权利要求 1 或 3 所述的方法, 其特征在于, 所述计算与所述指定条件相匹配的 总记录数, 获取计算后的总记录数将所述总记录数更新到缓存中, 并加载该总记录数到 web 显示页分页显示包括 : 访问应用层APP且通过所述应用层构造结构化。
6、查询语言SQL查询数据库从数据库读取 与所述指定条件相匹配的总记录数 ; 获取所述应用层读取到的总记录数 ; 将所述总记录数更新到缓存中并加载所述总记录数。 5. 一种优化的 web 分页查询的装置, 其特征在于, 包括 : 接收单元, 用于接收指定条件下指定页的分页查询请求, 并接收与所述指定条件相匹 配的计算总记录数请求 ; 构造单元, 用于根据所述分页查询请求构造指定页的查询条件 ; 计算单元, 用于根据所述查询条件计算指定页的页范围, 且计算与所述指定条件相匹 配的总记录数 ; 判断单元, 用于判断缓存中是否保存有与所述指定条件相匹配的总记录数 ; 加载单元, 用于获取所述页范围内的数。
7、据并加载到 web 显示页, 且获取计算后的总记 权 利 要 求 书 CN 103425708 A 2 2/2 页 3 录数将所述总记录数更新到缓存中, 并加载该总记录数到 web 显示页分页显示。 6. 根据权利要求 5 所述的方法, 其特征在于, 所述判断单元还用于判断缓存中与所述 指定条件相匹配的总记录数是否过期。 权 利 要 求 书 CN 103425708 A 3 1/6 页 4 一种优化的 web 分页查询方法及装置 技术领域 0001 本发明涉及计算机技术领域, 具体涉及一种优化的 web 分页查询方法及装置。 背景技术 0002 Web 是一种典型的分布式应用结构, 其每一次信。
8、息交换都要涉及客户端和服务端, 对于使用者来说, 面对的是 web 客户端。web 客户端的主要任务是展示信息内容, 而在 web 应用中, 由于网络传输以及前台浏览器展示性能的限制, 通常采用分页查询, 即分页方式显 示查询结果, 然后由用户切换指定页范围访问其他页面的数据。 0003 现有技术中基于 web 应用的数据查询, 采用分页查询算法, 每次交互仅获取给定 页范围的数据, 并以此来提高响应速度。其中, 分页查询算法主要处理过程如下 : 0004 A1 : 根据当前查询条件构造统计 SQL, 计算与查询条件相匹配的总记录数 ; 0005 A2 : 根据总记录数和预设的每页记录数计算出。
9、与查询条件相匹配的总页数 ; 0006 A3 : 根据指定的页范围构造查询 SQL 获取指定页范围内的数据, 将数据和分页信 息返回前台界面并装载显示。 0007 本发明的发明人在实施上述方案发现, 该分页查询算法中没有缓存处理机制, 每 次查询都要计算与查询条件相匹配的总记录数, 而计算总记录数的消耗大于具体获取指定 页范围内数据的开销。 发明内容 0008 针对上述缺陷, 本发明实施例提供了一种优化的 web 分页查询方法及装置, 通过 异步计算页范围和总记录数, 甚至利用缓存保存总记录数来提高 web 分页查询的响应速 度, 提高整体性能。 0009 一种优化的 web 分页查询方法, 。
10、包括 : 0010 接收指定条件下指定页的分页查询请求, 并接收与所述指定条件相匹配的计算总 记录数请求 ; 0011 其中, 所述接收指定条件下指定页的分页查询请求之后包括 : 0012 根据所述分页查询请求构造指定页的查询条件 ; 0013 根据所述查询条件计算指定页的页范围 ; 0014 获取所述页范围内的数据并加载到 web 显示页 ; 0015 所述接收与所述指定条件相匹配的计算总记录数请求之后包括 : 0016 判断缓存中是否保存有与所述指定条件相匹配的总记录数 ; 0017 若是, 则访问缓存读取与所述指定条件相匹配的总记录数并加载到 web 显示页分 页显示 ; 0018 若否。
11、, 则计算与所述指定条件相匹配的总记录数, 获取计算后的总记录数将所述 总记录数更新到缓存中, 并加载该总记录数到 web 显示页分页显示。 0019 一种优化的 web 分页查询装置, 包括 : 说 明 书 CN 103425708 A 4 2/6 页 5 0020 接收单元, 用于接收指定条件下指定页的分页查询请求, 并接收与所述指定条件 相匹配的计算总记录数请求 ; 0021 构造单元, 用于根据所述分页查询请求构造指定页的查询条件 ; 0022 计算单元, 用于根据所述查询条件计算指定页的页范围, 且计算与所述指定条件 相匹配的总记录数 ; 0023 判断单元, 用于判断缓存中是否保存。
12、有与所述指定条件相匹配的总记录数 ; 0024 加载单元, 用于获取所述页范围内的数据并加载到 web 显示页, 且获取计算后的 总记录数将所述总记录数更新到缓存中, 并加载该总记录数到 web 显示页分页显示。 0025 从以上技术方案可以看出, 本发明实施例具有以下优点 : 0026 本发明通过将具体查询页范围的数据和计算总记录数分离后异步处理, 还通过缓 存保存查询总记录数, 将第一次查询的总记录数保存在缓存中, 在下一次查询时直接从缓 存读取, 减少计算总记录数的次数, 从而提高 web 分页查询的响应速度。 附图说明 0027 为了更清楚地说明本发明实施例的技术方案, 下面将对本发明。
13、实施例中所需要使 用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例, 对于 本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他 的附图。 0028 图 1 为本发明实施例提供的一种优化的 web 分页查询方法中计算页范围的流程 图 ; 0029 图2为本发明实施例提供的一种优化的web分页查询方法中计算页范围的另一流 程示意图 ; 0030 图3为本发明实施例提供的一种优化的web分页查询方法中计算总记录数的流程 示意图 ; 0031 图4为本发明实施例提供的一种优化的web分页查询方法中计算总记录数的另一 工作流程示意图 ; 00。
14、32 图 5 为本发明实施例提供的一种优化的 web 分页查询系统基本结构示意图 ; 0033 图 6 为本发明实施例提供的一种优化的 web 分页查询系统的工作示意图。 具体实施方式 0034 下面将结合本发明实施例的附图, 对本发明实施例中的技术方案进行清楚、 完整 地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于本 发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实 施例, 都属于本发明保护的范围。 0035 本发明实施例提供了一种优化的 web 分页查询方法及装置, 通过异步计算页范围 和总记录数, 提高 web 分页查。
15、询的响应速度, 下面将详细介绍本发明的技术方案。 0036 本发明实施例通过将计算页范围和总记录数分离异步处理, 该方法包括 : 0037 A1、 接收指定条件下指定页的分页查询请求, 并接收与所述指定条件相匹配的计 算总记录数请求 ; 说 明 书 CN 103425708 A 5 3/6 页 6 0038 其中, 所述接收指定条件下指定页的分页查询请求之后包括 : 0039 A21、 根据所述分页查询请求构造指定页的查询条件 ; 0040 A22、 根据所述查询条件计算指定页的页范围 ; 0041 A23、 获取所述页范围内的数据并加载到 web 显示页 ; 0042 所述接收与所述指定条件。
16、相匹配的计算总记录数请求之后包括 : 0043 A31、 判断缓存中是否保存有与所述指定条件相匹配的总记录数 ; 0044 A32、 若是, 则访问缓存读取与所述指定条件相匹配的总记录数并加载到 web 显示 页分页显示 ; 0045 A33、 若否, 则计算与所述指定条件相匹配的总记录数, 获取计算后的总记录数将 所述总记录数更新到缓存中, 并加载该总记录数到 web 显示页分页显示。 0046 在 Web 分页查询中, 将计算页范围和总记录数分离处理, 分别接收到指定条件下 指定页的分页查询请求和计算总记录数请求。 0047 其中, 在接收到指定条件下的分页查询请求之后, 根据分页查询请求。
17、构造指定页 的查询条件, 之后, 根据查询条件将指定页的页范围计算出来, 并获取页范围内的数据后将 页范围内的数据加载到 web 显示页。 0048 在接收到计算与指定条件相匹配的总记录数的请求之后, 先查看缓存中是否有与 指定条件相匹配的总记录数, 如果判断出缓存中保存有与指定条件相匹配的总记录数时, 直接从缓存中读取该总记录数加载到 web 显示页, 如果缓存中没有相匹配的总记录数, 那 么需要计算与指定条件相匹配的总记录数, 并且将计算出来的总记录数更新到缓存中, 最 后再加载总记录数于 web 显示页显示。 0049 在本发明实施例中, 在接收到计算指定条件下指定页的分页查询请求, 之。
18、后计算 指定页的页范围, 获取页范围内的数据并加载显示, 而在接收到分页查询请求的同时或者 之后的时间, 接收到计算总记录数请求, 判断缓存中是否有相匹配的总记录数, 如果没有就 计算相匹配的总记录数, 如果缓存中保存有就直接从缓存读取, 通过异步计算页范围和总 记录数, 能够提高 web 分页查询的响应速度。 0050 下面将详细介绍异步计算页范围的情况, 请参阅图 1, 图 1 为本发明实施例提供的 一种优化的 web 分页查询方法中计算页范围的流程图。如图 1 所示, 该计算页范围的步骤 包括 : 0051 110、 接收指定条件下指定页的分页查询请求 ; 0052 其中, 分页查询时,。
19、 用户在 web 界面输入查询请求并指定查询页, web 界面接收到 指定页的选择请求后, 将指定页的分页查询请求发送到应用层 APP。 0053 120、 根据所述分页查询请求构造指定页的查询条件 ; 0054 其中, 应用层 APP 根据分页查询请求构造指定页的查询条件, 查询条件包括指定 页的页范围的范围限定。 0055 130、 根据所述查询条件计算指定页的页范围 ; 0056 其中, 应用层 APP 根据构造出来的查询条件, 先计算指定页的页范围, 页范围可以 指示指定页从哪一条记录数开始, 到哪一条记录数结束。 0057 140、 获取所述页范围内的数据并加载到 web 显示页。 。
20、0058 其中, 计算到页范围后, 获取页范围的数据并加载到 web 显示页显示。 说 明 书 CN 103425708 A 6 4/6 页 7 0059 在异步处理页范围中, 根据接收到的分页查询请求构造指定页的查询条件计算页 范围, 获取页范围的数据后加载在 web 显示页显示, 在第一时间将页范围的数据显示给用 户, 提高页范围的数据的加载速度。 0060 另外地, 还可以更进一步理解获取所述页范围内的数据并加载到 web 显示页, 请 参阅图2, 图2为本发明实施例提供的一种优化的web分页查询方法中计算页范围的另一流 程示意图。如图 2 所示, 获取所述页范围内的数据并加载到 web。
21、 显示页还包括步骤 : 0061 2401、 访问应用层 APP, 通过所述应用层 APP 构造结构化查询语言 SQL 查询数据库 从数据库读取与所述指定条件相匹配的页范围的数据 ; 0062 其中, 应用层APP通过构造SQL查询语言查询指定页的页范围数据, 再访问该应用 层 APP 读取页范围内的数据。 0063 2402、 获取应用层 APP 读取到页范围的数据 ; 0064 其中, 通过访问应用层 APP, 读取应用层 APP 查询到的页范围内的数据。 0065 2403、 加载所述页范围内的数据 ; 0066 其中, 读取到页范围的数据后, 加载页范围内的数据到 web 显示页。 0。
22、067 在本发明实施例中, 先计算页范围, 然后访问应用层 APP 获取页范围内的数据, 再 加载到 web 显示页显示。 0068 下面将详细介绍计算总记录数的情况, 如图3所示, 图3为本发明实施例提供的一 种优化的 web 分页查询方法中计算总记录数的流程示意图。如图 3 所示, 计算总记录数包 括步骤 : 0069 310、 接收与所述指定条件相匹配的计算总记录数请求 ; 0070 其中, 分页查询中, 在接收到分页查询请求时到完成分页查询请求之前的某个时 间里, 还会接收到计算与指定条件相匹配的总记录数的请求。 0071 320、 判断缓存中是否保存有与所述指定条件相匹配的总记录数,。
23、 若是, 则转向步 骤 330 ; 若否, 则转向步骤 350 ; 0072 其中, 在接收到计算总记录数请求后, 先检查缓存中是否保存有相匹配的总记录 数, 通过使用缓存保存查询过的总记录数, 来减少以后对该总记录数的计算, 降低对数据库 的请求和查询, 提高请求效率和系统的执行效率, 进而提高 web 分页查询的响应速度。 0073 330、 判断缓存中与所述指定条件相匹配的总记录数是否过期, 若否, 则转向步骤 340, 若是, 则转向步骤 350 ; 0074 其中, 对于用户的查询请求, 查询到的总记录数不是一成不变的, 而缓存的内存有 限, 缓存仅仅是暂时存储在一定时间内查询过的总。
24、记录数, 当保存的总记录数在一定时间 后, 就会标志为过期, 或者从缓存中删除。 0075 340、 访问缓存读取与所述指定条件相匹配的总记录数并加载到 web 显示页分页 显示 ; 0076 其中, 缓存中保存有相匹配的总记录数后, 可以直接读取缓存中的总记录数, 则不 再需要计算总记录数, 免去计算总记录数的时间。 直接在缓存中读取总记录数后, 加载总记 录数, 提高总记录数加载的效率。 0077 350、 计算与所述指定条件相匹配的总记录数, 获取计算后的总记录数将所述总记 录数更新到缓存中, 并加载该总记录数到 web 显示页分页显示。 说 明 书 CN 103425708 A 7 5。
25、/6 页 8 0078 其中, 在缓存中没有保存有该总记录数时, 则计算与指定条件相匹配的总记录数, 获取计算到的总记录数后将该总记录数更新保存到缓存中, 以便以后直接使用, 再加载总 记录数在 web 显示页显示。 0079 本发明实施例中, 通过先检查缓存中是否有相匹配的总记录数, 当缓存中保存有, 就直接从缓存读取, 如果缓存没有再重新计算获取匹配的总记录数并且更新到缓存中。 0080 请参阅图4, 图4为本发明实施例提供的一种优化的web分页查询方法中计算总记 录数的另一工作流程示意图。如图 4 所示, 该步骤包括 : 0081 410、 接收与所述指定条件相匹配的计算总记录数请求 ;。
26、 0082 其中, 该步骤与上述实施例步骤 310 相同, 在此不再赘述。 0083 420、 判断缓存中是否保存有与所述指定条件相匹配的总记录数, 若是, 则转向步 骤 430, 若否, 则转向步骤 450 ; 0084 其中, 该步骤与上述实施例步骤 320 相同, 在此不再赘述。 0085 430、 判断缓存中与所述指定条件相匹配的总记录数是否过期, 若否, 则转向步骤 440, 若是, 则转向步骤 450 ; 0086 其中, 该步骤与上述实施例步骤 330 相同, 在此不再赘述。 0087 440、 访问缓存读取与所述指定条件相匹配的总记录数并加载到 web 显示页分页 显示 ; 0。
27、088 其中, 该步骤与上述实施例步骤 340 相同, 在此不再赘述。 0089 450、 访问应用层APP且通过所述应用层构造结构化查询语言SQL查询数据库从数 据库读取与所述指定条件相匹配的总记录数 ; 0090 其中, 访问应用层 APP, APP 通过构造 SQL 查询数据库计算总记录数。 0091 460、 获取所述应用层读取到的总记录数 ; 0092 其中, 从应用层 APP 获取应用层从数据库获取到的总记录数。 0093 470、 将所述总记录数更新到缓存中并加载所述总记录数。 0094 其中, 获取到匹配的总记录数后, 将获取到的总记录数更新到缓存中, 以便之后查 询时使用, 。
28、还要加载总记录数到 web 显示页显示。 0095 在本发明实施例中, 先判断缓存中是否有相匹配的总记录数, 在确定缓存中有总 记录数后, 还要判断该总记录数是否过期, 如果没有过期直接读取总记录数使用, 如果缓存 中相匹配的总记录数过期, 那么访问应用层 APP 获取总记录数, 并且将获取到的总记录数 更新到缓存中, 再加载该总记录数到 web 显示页显示。其中, 通过在第一次计算总记录数或 者是在总记录数过期后, 将计算获取到的总记录数更新保存到缓存中, 利用缓存暂时保存 来降低分页查询时对数据库的请求次数, 提高加载总记录数的效率, 从而提高 web 分页查 询整体的响应速度。 0096。
29、 本发明实施例还提供了 web 分页查询系统, 请参阅图 5 和图 6, 图 5 为本发明实施 例提供的一种优化的 web 分页查询系统的基本结构示意图 ; 图 6 为本发明实施例提供的一 种优化的 web 分页查询系统的工作示意图。如图 5 和图 6 所示, 该系统包括 : 0097 接收单元 510, 用于接收指定条件下指定页的分页查询请求, 并接收与所述指定条 件相匹配的计算总记录数请求 ; 0098 构造单元 520, 用于根据所述分页查询请求构造指定页的查询条件 ; 说 明 书 CN 103425708 A 8 6/6 页 9 0099 计算单元 530, 用于根据所述查询条件计算指。
30、定页的页范围, 且计算与所述指定条 件相匹配的总记录数 ; 0100 判断单元 540, 用于判断缓存中是否保存有与所述指定条件相匹配的总记录数 ; 0101 加载单元 550, 用于获取所述页范围内的数据并加载到 web 显示页, 且获取计算后 的总记录数将所述总记录数更新到缓存中, 并加载该总记录数到 web 显示页分页显示。 0102 另外地, 判断单元还可以用于判断缓存中与所述指定条件相匹配的总记录数是否 过期。 0103 其中, web 界面接收用户的查询请求输入, web 界面向 web 层数据访问接口发送分 页查询请求, 在web层数据访问接口接收到分页查询请求后构造查询条件, 。
31、应用层APP构造 SQL 查询数据获取页范围数据, web 层数据访问接口访问应用层 APP 获取页范围数据 ; 异步 处理中, web 层数据访问接口接收到计算总记录数请求, 访问缓存检查缓存中是否保存有相 匹配的总记录数, 如果缓存有直接访问缓存读取缓存中的总记录数, 如果没有则由应用层 APP 构造 SQL 查询数据库获取总记录数, web 层数据访问接口访问应用层 APP 获取总记录数 后加载到 web 界面显示。 0104 本发明实施例通过将计算页范围获取页范围内的数据和计算总记录数分开异步 处理, 获取页范围数据先行加载, 并加载异步计算后的总记录数, 同时通过缓存保存总记录 数,。
32、 减少总记录数的计算次数, 提高加载的响应效率, 提高 web 分页查询的响应速度。 0105 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以 通过程序来指令相关的硬件完成, 所述的程序可以存储于一种计算机可读存储介质中, 上 述提到的存储介质可以是只读存储器, 磁盘或光盘等。 0106 以上对本发明所提供的一种优化的 web 分页查询方法及装置进行了详细介绍, 对 于本领域的一般技术人员, 依据本发明实施例的思想, 在具体实施方式及应用范围上均会 有改变之处, 综上所述, 本说明书内容不应理解为对本发明的限制。 说 明 书 CN 103425708 A 9 1/5 页 10 图 1 说 明 书 附 图 CN 103425708 A 10 2/5 页 11 图 2 说 明 书 附 图 CN 103425708 A 11 3/5 页 12 图 3 说 明 书 附 图 CN 103425708 A 12 4/5 页 13 图 4 图 5 说 明 书 附 图 CN 103425708 A 13 5/5 页 14 图 6 说 明 书 附 图 CN 103425708 A 14 。