网页页面的分片嵌套缓存的处理方法和装置.pdf

上传人:b*** 文档编号:976048 上传时间:2018-03-22 格式:PDF 页数:28 大小:846.56KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010225186.2

申请日:

2010.07.12

公开号:

CN102331985A

公开日:

2012.01.25

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20100712|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

阿里巴巴集团控股有限公司

发明人:

岳旭强; 董旗宇

地址:

英属开曼群岛大开曼岛资本大厦一座四层847号邮箱

优先权:

专利代理机构:

北京集佳知识产权代理有限公司 11227

代理人:

逯长明;王宝筠

PDF下载: PDF下载
内容摘要

本申请提供了一种网页页面的分片嵌套缓存的处理方法和装置,所述包括:当接收到针对网页页面的请求时,获取所述网页页面包括的第一层分片信息;依据所述第一层分片信息依次对第一层分片执行分片解析过程,所述分片解析过程具体为:依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染;所述嵌套信息为当前分片是否包括其他分片的信息;将所述分片解析过程的结果组合成所述网页的完整的第一层分片内容。本申请实施例可以在对网页页面的分片嵌套缓存,同时在网页页面的分片进行嵌套缓存时还能够递归地获取到各个分片的HTML代码,从而向用户展示出完整的网页内容,弥补了现有技术的一项空白。

权利要求书

1: 一种网页页面的分片嵌套缓存的处理方法, 其特征在于, 包括 : 当接收到针对网页页面的请求时, 获取所述网页页面包括的第一层分片信息 ; 依据所述第一层分片信息依次对第一层分片执行分片解析过程, 所述分片解析过程具 体为 : 依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染 ; 所述嵌套信息 为当前分片是否包括其他分片的信息 ; 将所述分片解析过程的结果组合成所述网页的完整的第一层分片内容。
2: 根据权利要求 1 所述的方法, 其特征在于, 所述获取所述网页页面包括的第一层分 片信息, 具体包括 : 获取所述网页的统一资源定位符 URL ; 依据所述网页的 URL 查询得到该网页的模板 ; 获得该网页的模板中第一层分片对应的分片名称和分片参数。
3: 根据权利要求 2 所述的方法, 其特征在于, 所述依据所述第一层分片的嵌套信息对 所述第一层分片进行渲染, 具体包括 : 依次依据第一层分片的分片名称和分片参数获取所述第一层分片的 HTML 代码和嵌套 信息 ; 依据所述嵌套信息判断所述第一层分片是否包括第二层分片 ; 如果是, 则对所述第二 层分片进行递归渲染处理 ; 继续判断所述第二层分片是否包括第三层分片, 如果是, 则对所述第三层分片进行所 述递归渲染处理, 直至最后判断得到第 N 层分片不再包括其他分片为止, 所述 N 为大于 3 的 整数, 如果否, 则结束渲染过程 ; 所述递归渲染处理的方式为 : 在待处理分片的上一层分片上生成所述待处理分片的占 位符 ; 依据所述待处理分片的分片名称和分片参数, 获取所述待处理分片的上一层分片的 HTML 代码 ; 将所述待处理分片的 HTML 代码替换所述待处理分片的占位符。
4: 根据权利要求 3 所述的方法, 其特征在于, 所述依次依据第一层分片的分片名称和 分片参数获取所述第一层分片的 HTML 代码, 具体包括 : 从配置服务器中查询所述第一层分片的缓存信息, 所述缓存信息包括分片是否需要缓 存的信息 ; 依据所述第一层分片的缓存信息判断第一层分片是否需要缓存, 如果是, 则将所述第 一层分片的分片名称和分片参数进行哈希运算以得到第一层分片的分片标识 ID ; 并依据 所述分片 ID 从缓存系统中查找与该分片 ID 对应的第一层分片的 HTML 代码 ; 如果否, 则由 WEB 服务器的业务系统查找该分片 ID 对应的 HTML 代码。
5: 根据权利要求 4 所述的方法, 其特征在于, 如果所述第一层分片需要缓存而所述缓 存系统中不包括所述第一层分片的 HTML 代码, 还包括 : 由 WEB 服务器的业务系统查找该分片 ID 对应的 HTML 代码 ; 将所述查找得到的 HTML 代码及其与所述分片 ID 的对应关系缓存至缓存系统中。
6: 根据权利要求 4 所述的方法, 其特征在于, 所述缓存信息还包括需要缓存的分片的 缓存时间长度信息, 则所述方法还包括 : 当在所述缓存时间长度内某个分片的内容发生变化时, 按照所述分片的分片名称和分 片参数进行哈希运算以得到该分片的分片 ID ; 2 按照所述分片 ID 在缓存系统中查找并删除与该 ID 对应的 HTML 代码。
7: 根据权利要求 5 所述的方法, 其特征在于, 如果还包括头缓存, 则所述方法还包括 : 将所述分片的 HTML 代码对应的头 HEADER 的值缓存至所述缓存系统中。
8: 一种网页页面的缓存处理方法, 其特征在于, 包括 : 接收到针对网页页面的请求 ; 判断请求的所述网页页面是否需要进行全页缓存, 如果需要, 则对所述网页页面直接 进行渲染, 以获取所述网页页面的内容 ; 如果不需要, 则获取所述网页页面包括的第一层分片信息 ; 依据所述第一层分片信息 依次对第一层分片执行分片解析过程, 所述分片解析过程具体为 : 依据所述第一层分片的 预置的嵌套信息对所述第一层分片进行渲染 ; 所述嵌套信息为当前分片是否包括其他分片 的信息 ; 将所述分片解析过程的结果组合成所述网页的完整的第一层分片内容。
9: 根据权利要求 8 所述的方法, 其特征在于, 所述判断请求的所述网页页面是否需要 进行全页缓存, 具体包括 : 获取所述网页页面的 URL, 并依据所述 URL 查找预置的缓存信息, 所述缓存信息包括所 述网页页面是否需要进行全页缓存的信息, 以及所述网页页面的缓存时间长度信息。
10: 根据权利要求 9 所述的方法, 其特征在于, 对所述网页页面直接进行渲染, 具体包 括: 在所述缓存时间长度还未到达时, 将所述网页页面的 URL 与页面参数生成 32 位的页面 ID ; 依据所述页面 ID 从缓存系统中查找对应的页面 HTML 代码。
11: 根据权利要求 10 所述的方法, 其特征在于, 如果查询不到 HTML 代码, 则所述方法还 包括 : 由 WEB 服务器中的业务系统查找该页面 ID 对应的 HTML 代码 ; 将所述查找得到的 HTML 代码及其与所述页面 ID 的对应关系缓存至缓存系统中。
12: 一种网页页面的分片嵌套缓存的处理装置, 其特征在于, 该装置包括 : 获取模块, 用于当接收到针对网页页面的请求时, 获取所述网页页面包括的第一层分 片信息 ; 分片解析模块, 用于依据所述第一层分片信息依次对第一层分片执行分片解析过程, 所述分片解析过程具体为 : 依据所述第一层分片的预置的嵌套信息对所述第一层分片进行 渲染 ; 所述嵌套信息为当前分片是否包括其他分片的信息 ; 组合拼装模块, 用于将所述渲染的渲染结果组合成所述网页的完整的第一层分片内 容。
13: 一种网页页面的缓存处理装置, 其特征在于, 该装置包括 : 接收网页页面请求模块, 用于接收针对网页页面的请求 ; 判断模块, 用于判断所述请求的网页页面是否需要进行全页缓存 ; 直接渲染模块, 用于当所述判断模块的结果为是时, 对所述网页页面直接进行渲染, 以 获取所述网页页面的内容 ; 嵌套缓存处理装置, 用于当所述判断模块的结果为否时, 获取所述网页页面包括的第 一层分片信息 ; 依据所述第一层分片信息依次对第一层分片执行解析过程, 所述解析过程 3 具体为 : 依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染 ; 所述嵌套信 息为当前分片是否包括其他分片的信息 ; 将所述渲染的渲染结果组合成所述网页的完整的 第一层分片内容。

说明书


网页页面的分片嵌套缓存的处理方法和装置

    技术领域 本申请涉及网络数据处理领域, 特别涉及网页 (WEB) 页面的分片嵌套缓存的处理 方法和装置。
     背景技术 在用户向网页服务器第一次请求网页页面时, 为了提高访问网页的速度, 通常网 络资源浏览器 ( 例如 IE 浏览器 ) 会采用累积式加速的方法, 将用户曾经访问的网页内容 ( 包括图片以及 cookie 文件等 ) 存放在电脑里, 电脑里的这个存放空间, 被称为 IE 缓存空 间。以后每次访问网页时, IE 浏览器会首先搜索这个缓存空间, 如果其中已经缓存当前访 问的内容, 那 IE 浏览器就不必从网上下载这部分内容, 而是直接从缓存读取, 以提高访问 网页的速度。
     对于网页的缓存目前现有技术中有两种方式, 一种是全页缓存, 指针对访问的网 页整个页面进行缓存 ; 另一种是分片缓存, 指将访问的网页页面划分成若干部分的分片, 例 如, 某个分片为图片信息, 某个分片为文字信息等, 然后针对某一分片的内容进行缓存。
     但是, 有一些网页的分片之间因为其内容相关, 所以有时候需要在某些分片之间 实现嵌套缓存, 例如, 嵌套形式分片 A 包括分片 B, 而分片 B 又包括分片 C 的形式, 对于分片 A 需要缓存, B 不需要缓存, C 又需要缓存的形式, 现有技术无法实现。
     目前, 需要本领域技术人员迫切解决的一个技术问题就是 : 如何能够创新地提出 一种网页页面的分片嵌套缓存的处理方法, 以解决现有技术中无法实现分片嵌套缓存及其 后续递归处理的技术问题。
     发明内容 本申请所要解决的技术问题是提供一种页面缓存的处理方法, 用以解决现有技术 中无法实现分片嵌套缓存及其后续递归处理的技术问题。
     本申请还提供了一种页面缓存的处理装置, 用以保证上述方法在实际中的实现及 应用。
     为了解决上述问题, 本申请公开了一种页面缓存的处理方法, 包括 :
     当接收到针对网页页面的请求时, 获取所述网页页面包括的第一层分片信息 ;
     依据所述第一层分片信息依次对第一层分片执行分片解析过程, 所述分片解析过 程具体为 : 依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染 ; 所述嵌套 信息为当前分片是否包括其他分片的信息 ;
     将所述分片解析过程的结果组合成所述网页的完整的第一层分片内容。
     本申请还公开了一种网页页面的缓存处理方法, 包括 :
     接收到针对网页页面的请求 ;
     判断请求的所述网页页面是否需要进行全页缓存, 如果需要, 则对所述网页页面 直接进行渲染, 以获取所述网页页面的内容 ;
     如果不需要, 则获取所述网页页面包括的第一层分片信息 ; 依据所述第一层分片 信息依次对第一层分片执行分片解析过程, 所述分片解析过程具体为 : 依据所述第一层分 片的预置的嵌套信息对所述第一层分片进行渲染 ; 所述嵌套信息为当前分片是否包括其他 分片的信息 ; 将所述分片解析过程的结果组合成所述网页的完整的第一层分片内容。
     本申请公开了一种网页页面的分片嵌套缓存的处理装置, 包括 :
     获取模块, 用于当接收到针对网页页面的请求时, 获取所述网页页面包括的第一 层分片信息 ;
     分片解析模块, 用于依据所述第一层分片信息依次对第一层分片执行分片解析过 程, 所述分片解析过程具体为 : 依据所述第一层分片的预置的嵌套信息对所述第一层分片 进行渲染 ; 所述嵌套信息为当前分片是否包括其他分片的信息 ;
     组合拼装模块, 用于将所述渲染的渲染结果组合成所述网页的完整的第一层分片 内容。
     本申请还提供了一种网页页面的缓存处理装置, 该装置包括 :
     接收网页页面请求模块, 用于接收针对网页页面的请求 ;
     判断模块, 用于判断所述请求的网页页面是否需要进行全页缓存 ; 直接渲染模块, 用于当所述判断模块的结果为是时, 对所述网页页面直接进行渲 染, 以获取所述网页页面的内容 ;
     嵌套缓存处理装置, 用于当所述判断模块的结果为否时, 获取所述网页页面包括 的第一层分片信息 ; 依据所述第一层分片信息依次对第一层分片执行解析过程, 所述解析 过程具体为 : 依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染 ; 所述嵌 套信息为当前分片是否包括其他分片的信息 ; 将所述渲染的渲染结果组合成所述网页的完 整的第一层分片内容。
     与现有技术相比, 本申请包括以下优点 :
     在本申请实施例中, 可以在对网页页面的分片嵌套缓存, 同时在网页页面的分片 进行嵌套缓存时还能够递归地获取到各个分片的 HTML 代码, 从而向用户展示出完整的网 页内容, 弥补了现有技术的一项空白。 在本实施例中, 缓存系统可以采用分布式集群服务器 来实现, 所述分布式集群服务器可以采用水平扩容的方式, 增加充当缓存系统的服务器台 数, 这样就可以实现某一台服务器存储了分片的 HTML 代码之后, 其他的分布式集群服务器 就不再进行存储。同时采用本申请实施例的技术方案, 可以实现分片之间不限层数的递归 嵌套, 同时也可以将每个分片的缓存时间设置为不相同的。 当然, 实施本申请的任一产品并 不一定需要同时达到以上所述的所有优点。
     附图说明
     为了更清楚地说明本申请实施例中的技术方案, 下面将对实施例描述中所需要使 用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本申请的一些实施例, 对于 本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可以根据这些附图获得其 他的附图。
     图 1 是本申请实施例中所涉及到的系统框架图 ;
     图 2 是本申请的一种页面缓存的处理方法实施例一的流程图 ;图 3 是本申请的一种页面缓存的处理方法实施例二的流程图 ; 图 4 是本申请方法实施例二中步骤 304 的流程图 ; 图 5 是本申请方法实施例二中第一层分片的分片名称示意图 ; 图 6 是本申请的一种页面缓存的处理方法实施例三的流程图 ; 图 7 是本申请的一种页面缓存的处理方法实施例四的流程图 ; 图 8 是本申请的一种页面缓存的处理方法实施例五的流程图 ; 图 9 是本申请的一种页面缓存的处理装置实施例六的结构框图 ; 图 10 是本申请的一种页面缓存的处理装置实施例七的结构框图 ; 图 11 是本申请装置实施例七中获取嵌套信息子模块 1004 的结构框图 ; 图 12 是本申请的一种页面缓存的处理装置实施例八的结构框图 ; 图 13 是本申请的一种页面缓存的处理装置实施例九的结构框图 ; 图 14 是本申请的一种页面缓存的处理装置实施例十的结构框图。具体实施方式
     下面将结合本申请实施例中的附图, 对本申请实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本申请一部分实施例, 而不是全部的实施例。基于 本申请中的实施例, 本领域普通技术人员所获得的所有其他实施例, 都属于本申请保护的 范围。 本申请可用于众多通用或专用的计算装置环境或配置中。 例如 : 个人计算机、 服务 器计算机、 手持设备或便携式设备、 平板型设备、 多处理器装置、 包括以上任何装置或设备 的分布式计算环境等等。
     本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述, 例如程序 模块。 一般地, 程序模块包括执行特定任务或实现特定抽象数据类型的例程、 程序、 对象、 组 件、 数据结构等等。也可以在分布式计算环境中实践本申请, 在这些分布式计算环境中, 由 通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中, 程序模块可以 位于包括存储设备在内的本地和远程计算机存储介质中。
     本申请的主要思想之一可以包括, 预先设置网页页面的各个分片的嵌套信息和缓 存信息, 所述嵌套信息为分片是否包括其他分片的信息 ; 所述各个分片与对应的嵌套信息 可保存在 WEB 服务器的网页模板中, 在对当前分片解析时一并从网页模板中读取得到该嵌 套信息。在所述网页模板中的信息还可包括分片名称和分片参数, 所述分片名称可以标识 出每一个分片, 而分片参数是根据业务确定的。 所述业务是指用户的某种需求, 而实现用户 某种需求的功能就是具体的业务。所述缓存信息为所述分片是否需要缓存的信息, 以及需 要缓存的分片的缓存时间长度信息。所述缓存信息可以保存在配置服务器中, 在网页页面 进行缓存或者网页页面的分片进行嵌套缓存时, 可以从所述配置服务器中动态获得所述缓 存信息。本申请中在接收到针对某个网页页面的请求时, 首先可以判断所述网页页面是否 需要进行全页缓存, 如果需要, 则对所述网页页面直接进行渲染, 以获取所述网页页面的内 容; 如果不需要, 则获取所述网页页面包括的第一层分片信息 ; 依据所述第一层分片信息 依次对第一层分片执行解析过程, 所述分片解析过程具体为 : 依据所述第一层分片的预置 的嵌套信息对所述第一层分片进行渲染 ; 所述嵌套信息为当前分片是否包括其他分片的信
     息; 将所述分片解析过程的结果组合成所述网页的完整的第一层分片内容。
     需要说明的是, 在本申请实施例中, 所提及的网页页面包括的分片, 可以允许至少 具有两层的分片, 并且各层分片可以有一个或多个, 其中, 所述第一层分片与第二层分片是 父子关系, 但是并不一定是所有的第一层分片都会包括第二层分片, 也可以是其中的一个 或者多个第一层分片包括第二层分片。其中所述第二层分片还可以包括第三层分片, 依此 类推, 本申请实施例中将这种嵌套关系称为递归嵌套。并且本申请实施例中的各个层次的 分片之间的缓存信息是相互独立的, 例如, 可以预先将当前层分片设置为需要缓存, 而其下 一层的子分片设置为不需要缓存, 并且该下一层的子分片的子分片又可以设置为需要缓存 等。 缓存信息都可以预先设置好并存贮在配置服务器中, 当然, 配置服务器中的这些设置好 的缓存信息在后续使用过程中也可以实时更新。
     参考图 1 所示, 为本申请实施例中所涉及到的系统框架图, 用户向网页服务器请 求网页, 所述缓存处理装置可以集成在 WEB 服务器上。所述缓存处理装置可以是 WEB 服务 器新增的一个功能实体, 也可以是单独作为一个功能实体来实现, 该缓存处理装置可以执 行本申请实施例中对网页的分片嵌套缓存时的递归处理方法。 缓存系统用于存储各个分片 或页面的 HTML 代码, 缓存处理装置可以向所述缓存系统请求分片或者页面的 HTML 代码, 如 果缓存系统中未包括分片或页面的 HTML 代码, 则 WEB 服务器中的业务系统负责提供该分片 或者页面的 HTML 代码, 所述业务系统可以理解为 WEB 服务器中完成某个用户请求业务的若 干个模块组成的当前系统。 需要说明的是, 本申请在实际应用中, 也可以不采用缓存系统来缓存 HTML 代码, 而是直接在客户端进行本地保存, 例如, 直接缓存至客户端的计算机内存中, 此时客户端和 WEB 服务器之间直接进行 HTML 代码的交互, 如果客户端在本地查找不到对应分片或者页 面的 HTML 代码, 则触发 WEB 服务器的业务系统进行查找, 如果客户端在本地查找到相应的 HTML 代码, 则直接在用户请求的网页页面上进行显示。不过因为此种方式对本地内存或者 计算机的性能要求较高, 并且网页页面的种类非常繁多, 因此, 一般采用单独的分布式集群 服务器来作为本申请实施例中的缓存系统。
     本申请实施例中的系统框架还可以包括配置服务器, 所述配置服务器可以向所述 缓存处理装置提供各个分片的缓存信息, 但是在本申请实现过程中也可以不需要该配置服 务器, 此时所述缓存信息可以在 WEB 服务器中预先给每个分片都一次性设置完毕, 类似于 分片的固定参数不可改变, 而此时缓存系统的各个分片的缓存信息就无法动态修改。
     在本申请的实施例中, 所述缓存信息可以采用文本方式实现, 也可以将缓存信息 封装成程序中的对象。当把缓存信息封装成程序中的对象时, 这样可以使得当前分片是否 包括了其他分片的嵌套方式或者某个嵌套中是否有死循环, 都可以从 THREAD_LOCAL 中获 取相应的缓存信息进行判断即可。所述 THREAD_LOCAL 为 WEB 服务器的一个线程级别的变 量, 可以在某一个请求过程中从配置服务器中向缓存处理装置提供缓存信息。
     采用本申请实施例中的网页页面缓存的处理方法, 即可以实现现有技术中可以实 现的全页缓存, 也可以实现现有技术中无法实现的网页页面的分片嵌套缓存, 弥补了现有 技术的缺陷。
     实施例一
     图 2 示出了本申请一种页面缓存的处理方法实施例一的流程图, 可以包括以下步
     骤: 步骤 201 : 当接收到针对网页页面的请求时, 获取所述网页页面包括的第一层分 片信息。
     在本实施例中, 网页页面如果确定了, 该网页页面包括的第一层分片信息也可以 确定, 因为同一个网页页面的分片格式是相同的, 即该网页页面需要划分为哪几个分片, 这 些分片的位置和名称等信息。 其中, 每一个分片在网页页面上实质上都是一个占位符, 这个 占位符可以在任何其他网页页面上使用, 只有当最后渲染出该分片结果的时候才会将占位 符替换成分片的具体内容。一般情况下, 所述分片的具体内容指的是该分片的具体内容对 应的超文本标记语言 (HyperText Mark-up Language, HTML) 代码。
     在本实施例中, 所述网页页面包括的分片可以嵌套缓存, 所述嵌套缓存的含义可 以理解为, 如果第一层分片 A 包括第二层分片 B, 且该第二层分片 B 也包括第三层分片 C, 则 依据对分片 A、 B 和 C 预置的缓存信息, 来实现对分片 A 和 C 缓存, 而分片 B 不缓存的功能。 但是不管第一层分片有没有包括其他分片, 在本步骤获取到的都是第一层分片信息, 而后 续在对该第一层分片进行解析时, 才能依次获取到分片的嵌套信息。
     步骤 202 : 依据所述第一层分片信息依次对第一层分片执行分片解析过程, 所述 分片解析过程具体为 : 依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲 染; 所述嵌套信息为当前分片是否包括其他分片的信息。
     获得所述网页页面的第一层分片信息之后, 执行对第一层分片的解析过程。因为 在解析分片的过程中, 可以从配置服务器中动态获取到所述各个第一层分片的嵌套信息, 即是当前第一层分片是否包括了第二层分片的信息, 以及所包括的第二层分片信息。在本 步骤中, 需要对所有的第一层分片都进行解析, 其中, 各个第一层分片的解析过程可以同时 执行, 也可以先后执行, 其执行顺序不影响本申请实施例的实现。
     其中, 本步骤提及的渲染过程为, 依据第一层分片的分片名称和分片参数查找所 述第一层分片的具体内容对应的 HTML 代码的。其中, 该渲染过程和现有技术中的渲染过程 类似, 在此就不再多做介绍。
     步骤 203 : 将所述渲染的渲染结果组合成所述网页的完整的第一层分片内容。
     在本步骤中, 当第一层分片不包括其他分片时, 则渲染结果即是该第一层分片的 HTML 代码 ; 当第一层分片包括第二层分片时, 或者第二层分片又包括了第三层分片时, 甚 至按照递归的方式直至第 N-1 层分片包括第 N 层分片, 则第一层分片的渲染结果则是包括 了第二层至第 N 层分片的 HTML 代码, 因此, 可以将所述第一层分片的渲染内容组合生成该 网页的第一层分片内容。
     实施例二
     图 3 示出了本申请一种页面缓存的处理方法实施例二的流程图, 可以包括以下步 骤:
     步骤 301 : 当接收到针对网页页面的请求时, 获取所述网页的统一资源定位符 (URL)。
     在本步骤中, 在接收到某个网页页面的请求时, 首先获取到该网页对应的统一资 源定位符 (Uniform/Universal Resource Locator, URL)。 以某网络交易平台中 “宝贝详情” 页面为例, 假设该 “宝贝详情” 页面的 URL 地址为 : xxx.xxx.com/detail.html ? id = 123。
     步骤 302 : 依据所述网页的 URL 查询得到该网页的模板。
     因为每一个网页都有唯一的 URL, 同时每一个网页也都有一个模板, 所以依据所 述网页的 URL 即可知道该网页页面所采用的模板。假设 “宝贝详情” 页面的模板信息为 “detail.vm” , 在本步骤中根据 “宝贝详情” 的页面地址得到模板信息为 “detail.vm” 。
     需要说明的是, 每个页面所采用的模板即可以是独立的, 也可以是多个页面共用 的。页面在采用模板时需要将模板中规定的分片部分进行填充。
     步骤 303 : 获得该网页的模板中第一层分片对应的分片名称和分片参数。
     当网页的模板确定之后, 相应地确定了该模板对应的页面的分片格式。本申请与 现有技术不同的是, 本申请中网页页面不仅包括第一层分片, 而且其包括的第一层分片还 可以递归的包括至少一层分片。 但是在本步骤通过网页页面所获得的分片仅仅为第一层分 片对应的分片名称和分片参数。 其中, 所述分片参数是根据业务确定的, 所述业务是指用户 的某种需求, 而实现用户某种需求的功能就是具体的业务。以 “掌柜信息” 为例, 其分片参 数就是卖家的用户 ID ; 以 “宝贝详情” 页面为例时, 其分片参数就是宝贝的信息和卖家的用 户 ID。
     在一个模板中引入某个分片, 可通过如下方式实现 : 例如, 分片名称为 “掌柜信 息” , 而模板名称为 “宝贝详情” , 则如果在 “宝贝详情” 中引用 “掌柜信息” 分片, 则代码如 下: control.set(“userInfo” ).addPrams(“userId” , 1234)
     其中, “addPrams”中的内容即是对应的分片 “掌柜信息”的分片参数, 其中的 userId 即是用户 ID, 为 “1234” ; 而 “control.set(“userInfo” )” 则表示在宝贝详情模板 中引用了这个分片。 当然, 该代码的实现仅仅是一个具体例子, 其所公开的内容不应理解为 对本申请的限定。
     步骤 304 : 依据第一层分片的分片名称和分片参数获得所述第一层分片的嵌套信 息, 并依据所述第一层分片的嵌套信息获得所述第一层分片的 HTML 代码 ; 所述嵌套信息为 当前分片是否包括其他分片的信息。
     在步骤 304 中, 当获得所述第一层分片的分片名称和分片参数时, 可以获得该第 一层分片嵌套信息和 HTML 代码。具体地, 所述嵌套信息可以从配置服务器中获得, 而配置 服务器也可以向 WEB 服务器中的缓存处理装置发送。分片对应的 HTML 代码可以是网页页 面将要显示的图片、 文字等信息, 而该分片及其对应的 HTML 代码都可以被其他网页页面的 模板所共用。例如, 对于网络交易平台中的卖方用户的 “宝贝详情” 页面的 “掌柜信息” 分 片, 其与 “店铺页面” 的 “掌柜信息” 分片就属于同一个分片。
     同时, 在获取所有的第一层分片的 HTML 代码的时候, 参考图 4 所示, 该获取第一层 分片的 HTML 代码的步骤可以包括 :
     步骤 401 : 从配置服务器中查询所述第一层分片的缓存信息, 所述缓存信息包括 分片是否需要缓存的信息, 以及需要缓存的分片的缓存时间长度信息。
     在所述配置服务器中保存着网页页面的各个层的分片的缓存信息, 所述缓存信息 包括分片是否需要缓存的信息, 以及需要缓存的分片的缓存时间长度信息。所述缓存时间 长度信息用于表示当前分片的在缓存系统中的有效时间, 当分片在缓存系统中的缓存时间 超过所述时间长度时, 该分片就会失效, 所述缓存系统中就不会再有该分片的具体内容。 所
     述缓存信息可以是预先设置好的。 当然, 后续如果需要对某个分片的缓存信息进行更改时, 也可以直接对配置服务器中保存的信息进行更改即可, 这样从配置服务器中查询得到的就 是最新的缓存信息。对于缓存信息的实现, 可以采用 “1” 来表示当前分片需要保存, 并采用 “0” 来表示当前分片不需要保存 ; 对于缓存时间长度信息的实现, 可以采用直接将时间长度 信息与所述分片名称或者分片参数信息等进行关联即可。当然, 缓存信息的实现可以在实 际应用中有多种方式, 本申请实施例无需对此做出特别的限定。
     需要说明的是, 因为缓存失效的时间是由缓存系统控制, 单独对于缓存处理装置 来讲, 在执行本申请实施例的过程中并不知道当前处理的页面或者分片还有多久才会失 效, 所以在查询缓存系统时, 如果查询不到的话就证明当前分片的内容已经失效了。
     步骤 402 : 依据所述第一层分片的缓存信息判断第一层分片是否需要缓存 ; 如果 是, 则进入步骤 403 ; 如果否, 则进入步骤 404。
     针对步骤 401 中所举的例子来讲, 如果获取到的表示分片是否需要缓存的信息为 “1” , 则认为该分片的判断结果是需要缓存。
     步骤 403 : 将所述第一层分片的分片名称和分片参数进行哈希运算以得到第一层 分片的分片标识 (ID) ; 并依据所述分片 ID 从缓存系统中查找与该分片 ID 对应的第一层分 片的 HTML 代码, 进入步骤 405。 其中, 所述第一层分片的分片名称可以参考图 5 所示, 所述网页页面的第一层分 片包括分片 A“宝贝描述” 、 分片 B“导航” 、 分片 C“掌柜信息” 以及分片 D“店铺类目” 。其 中, 第一层分片 C“掌柜信息” 还包括第二层分片 C1“掌柜信用度” 。
     在本步骤中, 可以将第一层分片的分片名称和分片参数进行哈希 (HASH) 运算, 运 算的结果即是所述第一层分片的分片 ID, 该 ID 一般情况下为 32 位。依据该 32 位的分片 ID, 可以从缓存系统中查找获取到该分片 ID 对应的 HTML 代码, 而缓存系统中则保存着各个 分片 ID 与 HTML 代码之间的对应关系和该 HTML 代码。
     需要说明的是, 在对第一层分片进行渲染时, 其具体方式为 : 先将该第一层分片在 网页上的位置生成一个占位符, 并获取对应的 HTML 代码, 获得之后将该 HTML 代码替换所述 第一层分片的占位符。 在对分片进行渲染时, 不管其处于网页的哪一层, 都可以按照上述方 式进行渲染。 其中, 所述占位符可以理解为该分片的一个位置, 后续可以在该位置中添加内 容。
     步骤 404 : 由 WEB 服务器中的业务系统查找该第一层分片的分片 ID 对应的 HTML 代 码, 进入步骤 405。
     当某个分片标识为不需要缓存时, 需要由 WEB 服务器中的业务系统来进行当前分 片的渲染, 渲染结果就是当前分片的 HTML 代码。具体的, 是由所述业务系统的渲染模块从 数据库或者搜索引擎或者文件系统中查找该分片 ID 对应的 HTML 代码。
     步骤 405 : 依据第一层分片预置的嵌套信息判断所述第一层分片是否包括第二层 分片 ; 如果是, 则进入步骤 406 ; 如果否, 则结束对第一层分片的渲染过程。
     在本步骤可依据嵌套信息来判断当前解析的第一层分片是否包括第二层分片。
     步骤 406 : 对所述第二层分片进行递归渲染处理, 所述递归渲染处理的方式为 : 在 待处理分片的上一层分片上生成所述待处理分片的占位符 ; 依据所述待处理分片的分片名 称和分片参数, 获取所述待处理分片的 HTML 代码 ; 将所述待处理分片的 HTML 代码替换所述
     待处理分片的占位符, 进入步骤 407。
     本步骤是在第一层分片包括第二层分片时, 实现对第二层分片的递归渲染处理, 即是在第一层分片上首先生成第二层分片的占位符, 然后依据第二层分片的分片名称和分 片参数, 采用相同的方式获取所述第二层分片的 HTML 代码, 其中, 所述采用相同的方式的 含义为 : 对所述第二层分片的分片名称和分片参数进行哈希运算以得到 32 位的第二层分 片 ID, 当所述第二层分片需要缓存时, 则依据该 ID 到缓存系统中查询获取对应的 HTML 代 码, 如果该缓存系统中没有对应的 HTML 代码, 或者所述第二层分片是不需要缓存的, 则依 据业务性能从数据库中或者从互联网上获取到对应的 HTML 代码, 查找之后再将所述第二 层分片的占位符部分替换为所述第二层分片的 HTML 代码。
     步骤 407 : 继续判断所述第二层分片是否包括第三层分片, 如果是, 则进入步骤 408 ; 如果否, 则结束第二层分片的渲染流程。
     在对所述第二层分片的 HTML 代码查找结束之后, 则继续判断所述第二层分片是 否包括第三层分片, 如果第二层分片不再包括第三层分片, 则结束第二层分片的渲染过程。
     更具体的来讲, 如果第二层分片继续包含第三层分片的话, 先将第二层分片的内 容进行渲染, 同时将第三层分片的部分在第二层分片上生成占位符, 然后再渲染第三层分 片, 并将第三层分片的渲染内容填充进该第二层分片的占位符中, 所得到的结果即是第二 层分片的 HTML 代码。以上面掌柜信息的例子来讲, “掌柜信息” 分片中包含 “信用度” 分片, 那么在递归渲染处理的时候, 先将 “掌柜信息” 分片的信息渲染, “信用度” 分片在 “掌柜信 息” 分片上的位置先设置为占位符, 然后再渲染该 “信用度” 分片, 并将 “信用度” 分片的渲 染内容填充进 “掌柜信息” 分片的占位符中, 最后返回 “掌柜信息” 分片的渲染结果。 步骤 408 : 对所述第三层分片进行所述递归渲染处理, 直至最后判断得到第 N 层分 片不再包括其他分片为止, 所述 N 为大于 3 的整数。
     在本步骤, 按照对第一层分片和第二层分片所做的递归渲染处理, 直至最后判断 得到第 N 层分片不再包括其他层级的分片位置, 所述 N 为大于 3 的整数。
     步骤 305 : 将获取到的所有的第一层分片的 HTML 代码组合成所述网页的完整的第 一层分片内容。
     在本步骤中, 需要将对第一层分片进行渲染的渲染结果进行组合, 所述渲染结果 即是第一层分片的 HTML, 如果第一层分片还递归的包括了至少一层分片, 则所述第一层 分片的渲染结果还包括所述至少一层分片的 HTML 代码, 此步骤中需要将所述各个分片的 HTML 代码组合形成所述网页的完整的第一层分片内容。
     步骤 306 : 将所述完整的第一层分片内容在客户端的网页上向用户进行展示。
     将组合成的完整的第一层分片的内容在客户端的网页上向用户进行展示, 展示结 果即是用户看到的网页内容。
     本实施例中, 可以在对网页页面的分片嵌套缓存, 同时在网页页面的分片进行嵌 套缓存时还能够递归地获取到各个分片的 HTML 代码, 从而向用户展示出完整的网页内容, 弥补了现有技术的一项空白。
     实施例三
     参考图 6, 示出了本申请一种页面缓存的处理方法实施例三的流程图, 本实施例可 以理解为将本申请的页面缓存的处理方法应用于实际中的一个具体例子, 可以包括以下步
     骤: 步骤 601 : 当接收到针对网页页面的请求时, 获取所述网页页面包括的第一层分 片信息。
     步骤 602 : 从配置服务器中查询所述第一层分片的缓存信息, 所述缓存信息包括 分片是否需要缓存的信息, 以及需要缓存的分片的缓存时间长度信息。
     步骤 603 : 依据所述第一层分片的缓存信息判断第一层分片是否需要缓存, 如果 是, 则进入步骤 604 ; 如果否, 则进入步骤 605。
     步骤 604 : 将所述第一层分片的分片名称和分片参数进行哈希运算以得到第一层 分片的分片标识 ID ; 依据所述分片 ID 从缓存系统中查找与该分片 ID 对应的第一层分片的 HTML 代码, 如果查找到该 HTML 代码, 则进入步骤 606 ; 如果没有查找到对应的 HTML 代码, 则 进入步骤 605。
     在本步骤中, 虽然所述第一层分片是需要缓存的, 但是所述缓存系统中却可能查 询不到所述第一层分片对应的 HTML 代码。例如, 当所述第一层分片的缓存时间已到, 所述 缓存的第一层分片的内容失效, 这种情况下就可能查询不到。 其中, 所述各个层的分片的缓 存时间是预先设置好的, 也可以存储在配置服务器中。
     步骤 605 : 由 WEB 服务器的业务系统负责查找该分片 ID 对应的 HTML 代码。
     步骤 606 : 当第一层分片需要缓存而缓存系统中却不存在该分片的 HTML 代码时, 将所述查找得到的 HTML 代码及其与所述分片 ID 的对应关系缓存至缓存系统中。
     在本步骤中, 第一层分片需要缓存的 HTML 代码却没有被存储进缓存系统中, 因此 在执行步骤 605 之后, 可以将查找到的 HTML 代码存储到缓存系统中。而如果第一层分片不 需要缓存, 那么查找到该第一层分片的 HTML 代码时, 就无需存储到缓存系统中。
     需要说明的是, 步骤 606 虽然在步骤 605 之后, 但是步骤 606 只有在第一层分片需 要缓存的 HTML 代码没有被存储进缓存系统时才执行, 因此步骤 606 并不是本实施例所必须 的步骤。
     步骤 607 : 依据预置的嵌套信息判断所述第一层分片是否包括第二层分片 ; 如果 是, 则对所述第二层分片进行递归渲染处理, 所述递归渲染处理的方式为 : 在待处理分片的 上一层分片上生成所述待处理分片的占位符 ; 依据所述待处理分片的分片名称和分片参 数, 获取所述待处理分片的上一层分片的 HTML 代码 ; 将所述待处理分片的 HTML 代码替换所 述待处理分片的占位符。
     步骤 608 : 继续判断所述第二层分片是否包括第三层分片, 如果是, 则对所述第三 层分片进行所述递归渲染处理, 直至最后判断得到第 N 层分片不再包括其他分片为止, 所 述 N 为大于 3 的整数, 如果否, 则结束渲染过程。
     本实施例中的步骤 607 和步骤 608 在上一个实施例中都进行了详细的描述, 因为 本实施例的实现方式与上一个实施例相同, 因此此处不再赘述。
     步骤 609 : 当某个分片的内容发生变化时, 按照所述分片的分片名称和分片参数 进行哈希运算以得到该分片的分片 ID。
     在本实施例中, 所述步骤 609 和步骤 610 可以实现对缓存系统中所存储的分片的 HTML 代码实现主动失效的功能。 主动失效的含义为, 即便某个分片的缓存时间还未过期, 也 可通过执行步骤 609 和 610 将缓存系统中该分片对应的 HTML 代码删除。
     步骤 610 : 按照所述分片 ID, 在缓存系统中查找并删除与该 ID 对应的 HTML 代码。
     在实际应用中, 有一些应用场景需要在分片的 HTML 代码未到达预定的缓存时间 就失效掉。以 “掌柜信息” 分片为例, 假设 “掌柜信息” 分片的缓存时间是 1 天, 但是如果还 未到 1 天的时候, “掌柜信息” 发生了变化, 这时可更新缓存系统中保存的该分片的 HTML 代 码, 将之前的缓存内容进行删除。
     需要说明的是, 可以从步骤 609 和步骤 610 中看出, 对分片的 HTML 代码进行失效 的时候, 通过对分片名称和分片参数进行哈希运算, 并将计算得到的 32 位结果作为分片 ID, 以删除该分片 ID 在缓存系统中对应的 HTML 代码。
     步骤 611 : 将所述分片除了 HTML 代码以外的其他响应头的值缓存至所述缓存系统 中。
     在本申请实施例中, 如果开启了头 (HEDER) 缓存, 在向缓存系统新增某个分片的 HTML 代码时, 有些业务需要将除了所述 HTML 代码以外的其他响应头 (RESPONE HEDER) 中的 信息也一起缓存, 而如果只缓存了 HTML 代码不缓存响应头的值的话, 可能会导致这些业务 无法正常工作。例如, 访问 “宝贝详情” 页面的分片时, 有相应的语言版本信息, 这些语言版 本信息在响应头中保存的方式是 “_lang = gbk” 的方式, 当 “宝贝详情” 页面向客户端返回 结果的时候, 对应的 “_lang = gbk” 也将返回, 这样就可以在保证对于某个分片的 HTML 代 码能够在不同的网页中都相同。
     在本步骤实现的时候, 预先配置好当前使用的业务系统中响应头的哪些值需要缓 存, 该配置信息和分片的相关信息一起存放在缓存系统中。 缓存之后, 如果用户请求的网页 页面中的分片在缓存系统中对应的也有响应头的值, 则在返回 HTML 代码的同时也返回对 应的响应头的值。
     在本实施例中, 缓存系统可以采用分布式集群服务器来实现, 所述分布式集群服 务器可以采用水平扩容的方式, 增加充当缓存系统的服务器台数, 这样就可以实现某一台 服务器存储了分片的 HTML 代码之后, 其他的分布式集群服务器就不再进行存储。同时采用 本申请实施例的技术方案, 可以实现分片之间不限层数的递归嵌套, 同时也可以将每个分 片的缓存时间设置为不相同的。同时本实施例中, 如果存在头缓存, 在分片的 HTML 代码进 行缓存的同时也缓存某个分片的响应头中需要的值。
     实施例四
     参考图 7, 示出了本申请一种页面缓存的处理方法实施例四的流程图, 本实施例可 以理解为将本申请的页面缓存的处理方法应用于实际中的一个具体例子, 可以包括以下步 骤:
     步骤 701 : 接收到针对网页页面的请求。
     步骤 702 : 判断所述请求的网页页面是否需要进行全页缓存 ; 如果需要, 则进入步 骤 703 ; 如果不需要, 则进入步骤 704。
     在本申请实施例中, 所描述的是对网页页面的缓存处理过程。前述三个实施例所 描述的技术方案是网页页面不需要缓存而网页页面的某些分片需要缓存的情况。 本实施例 中对所述网页页面是否需要缓存进行判断, 在当前用户请求的网页页面需要缓存时, 在后 续进行处理时, 可直接对该网页页面进行渲染 ; 而在当前用户请求的网页页面不需要缓存 时, 执行对网页页面包括的各个分片的渲染过程。步骤 703 : 对所述网页页面直接进行渲染, 以获取所述网页页面的内容。
     在本步骤中, 通过对整个网页页面直接进行渲染, 以获得所述网页页面的 HTML 代 码。在实际应用中, 可以直接利用网页页面的页面名称和页面参数进行哈希运算以得到 32 位页面 ID, 以该页面 ID 到缓存系统中查找对应的页面的 HTML 代码, 如果查询不到, 则从数 据库中或者互联网上查询相应的 HTML 代码, 并根据返回的查询结果获得所述网页页面的 具体内容。所述页面参数是指 WEB 服务器依据用户所请求的网页传递给缓存处理装置的参 数, 例如, 用户查询页面, 页面的 URL 都是相同的, 唯独不同的就是参数不同, 例如 :
     www.xxx.com/aaa.htm ? user = [x]&userName = [x]。
     步骤 704 : 对该网页页面执行页面解析过程, 所述页面解析过程具体包括 : 获取所 述网页页面包括的第一层分片信息 ; 依据所述第一层分片信息依次对第一层分片执行分片 解析过程。所述分片解析过程具体为 : 依据所述第一层分片的预置的嵌套信息对所述第一 层分片进行渲染 ; 所述嵌套信息为当前分片是否包括其他分片的信息 ; 将所述渲染的渲染 结果组合成所述网页的完整的第一层分片内容。
     本步骤针对的是网页页面不需要缓存而其中的某些分片需要缓存的应用场景, 该 应用场景下的实现过程在前述三个实施例中已经介绍得很详细, 在此不再赘述。 在本实施例中, 可以实现对网页页面缓存时的缓存处理, 能够实现网页页面需要 缓存而分片不缓存, 或者网页页面不需要缓存而其中的某些分片需要嵌套缓存时相应的渲 染过程。
     实施例五
     参考图 8, 其示出了本申请一种页面缓存的处理方法实施例五的流程图, 本实施例 可以理解为将本申请的页面缓存的处理方法应用于实际中的一个具体例子, 可以包括以下 步骤 :
     步骤 801 : 接收到针对网页页面的请求。
     步骤 802 : 获取所述网页页面的 URL, 并依据所述 URL 查找预置的缓存信息, 所述缓 存信息包括所述网页页面是否需要进行全页缓存的信息。如果需要进行全页缓存, 则进入 步骤 803, 如果不需要进行全页缓存, 则进入步骤 805。
     在本实施例中也可以由配置服务器对所述网页页面的缓存信息进行存储, 而配置 服务器可以更新存储的缓存信息, 并向缓存处理装置发送更新后的缓存信息 ; 缓存处理装 置也可以从配置服务器中主动获取相应的缓存信息。 所述缓存信息中包括所述网页页面是 否需要进行全页缓存的信息。
     步骤 803 : 将所述网页页面的 URL 与页面参数生成 32 位的页面 ID, 进入步骤 804。
     本步骤中需要将所述网页页面的 URL 与页面参数采用哈希运算生成 32 位的页面 ID。
     步骤 804 : 依据所述页面 ID 从缓存系统中查找对应的页面 HTML 代码, 进入步骤 806。
     以步骤 803 中得到的 32 位的页面 ID 为关键词从缓存系统中查询对应的页面 HTML 代码。
     步骤 805 : 由 WEB 服务器的业务系统负责查找该页面 ID 对应的 HTML 代码。
     步骤 806 : 将所述查找得到的 HTML 代码及其与所述页面 ID 的对应关系缓存至缓
     存系统中。
     在本步骤中, 如果网页页面需要缓存, 但是却在缓存系统中查询不到, 则在步骤 805 之后继续将查询得到的 HTML 代码及页面 ID 的对应关系, 同时还有 HTML 代码都存储至 缓存系统中。
     需要说明的是, 在进行网页页面的缓存处理时, 如果网页页面需要缓存, 也可以在 该网页页面的缓存时间还未到来, 但是网页页面的 HTML 代码又进行了更新的情况下, 对所 述网页页面进行主动失效。主动失效的含义及其实现方式在前述实施例中已经介绍, 在此 不再赘述。
     对于前述的各方法实施例, 为了简单描述, 故将其都表述为一系列的动作组合, 但 是本领域技术人员应该知悉, 本申请并不受所描述的动作顺序的限制, 因为依据本申请, 某 些步骤可以采用其他顺序或者同时进行。 其次, 本领域技术人员也应该知悉, 说明书中所描 述的实施例均属于优选实施例, 所涉及的动作和模块并不一定是本申请所必须的。
     实施例六
     与上述本申请一种页面缓存的处理方法实施例一所提供的方法相对应, 参见图 9, 本申请还提供了一种页面缓存的处理装置实施例六, 在本实施例中, 该装置具体可以包 括: 获取模块 901, 用于当接收到针对网页页面的请求时, 获取所述网页页面包括的第 一层分片信息。
     分片解析模块 902, 用于依据所述第一层分片信息依次对第一层分片执行分片解 析过程, 所述分片解析过程具体为 : 依据所述第一层分片的预置的嵌套信息对所述第一层 分片进行渲染 ; 所述嵌套信息为当前分片是否包括其他分片的信息。
     组合拼装模块 903, 用于将所述渲染的渲染结果组合成所述网页的完整的第一层 分片内容。
     本实施例中, 可以实现当网页页面的分片采用了嵌套缓存的方式时, 能够递归地 获取到所述网页页面各个分片的 HTML 代码, 最后组合拼装成该网页页面的第一层分片, 解 决了现有技术中无法对网页页面的分片进行嵌套缓存的问题, 以及分片进行嵌套缓存之后 的递归渲染问题。
     实施例七与上述本申请一种页面缓存的处理方法实施例二所提供的方法相对应, 参见图 10, 本申请还提供了一种页面缓存的处理装置的优选实施例七, 在本实施例中, 该装 置具体可以包括 :
     获取 URL 子模块 1001, 用于获取所述网页的统一资源定位符 (URL) ;
     查询模板子模块 1002, 用于依据所述网页的 URL 查询得到该网页的模板 ;
     获得分片信息子模块 1003, 用于获得该网页的模板中第一层分片对应的分片名称 和分片参数 ;
     获取嵌套信息子模块 1004, 用于依次依据第一层分片的分片名称和分片参数获取 所述第一层分片的 HTML 代码和嵌套信息。
     参考图 11 所示, 所述获取嵌套信息子模块 1004 具体可以包括 :
     查询缓存信息子模块 1101, 用于从配置服务器中查询所述第一层分片的缓存信 息, 所述缓存信息包括分片是否需要缓存的信息, 以及需要缓存的分片的缓存时间长度信
     息; 判断子模块 1102, 用于在当前时间还未到达所述缓存时间长度时, 依据所述第一 层分片的缓存信息判断第一层分片是否需要缓存 ;
     第一查找 HTML 代码子模块 1103, 用于当所述判断子模块 1102 的结果为是时, 则 将所述第一层分片的分片名称和分片参数进行哈希运算以得到第一层分片的分片标识 ID ; 并依据所述分片 ID 从缓存系统中查找与该分片 ID 对应的第一层分片的 HTML 代码 ;
     第二查找 HTML 代码子模块 1104, 用于当所述判断子模块 1102 的结果为否时, 则触 发 WEB 服务器的业务系统查找该分片 ID 对应的 HTML 代码。
     递归渲染处理子模块 1005, 用于依据所述嵌套信息判断所述第一层分片是否包 括第二层分片 ; 如果是, 则对所述第二层分片进行递归渲染处理, 所述递归渲染处理的方式 为: 在待处理分片的上一层分片上生成所述待处理分片的占位符 ; 依据所述待处理分片的 分片名称和分片参数, 获取所述待处理分片的上一层分片的 HTML 代码 ; 将所述待处理分片 的 HTML 代码替换所述待处理分片的占位符 ; 并继续判断所述第二层分片是否包括第三层 分片, 如果是, 则对所述第三层分片进行所述递归渲染处理, 直至最后判断得到第 N 层分片 不再包括其他分片为止, 所述 N 为大于 3 的整数 ; 如果第一层分片不包括第二层分片, 则结 束渲染过程。
     客户端展示模块 1006, 用于将所述完整的第一层分片内容在客户端的网页上展 示。
     本实施例中, 可以在对网页页面的分片嵌套缓存, 同时在网页页面的分片进行嵌 套缓存时还能够递归地获取到各个分片的 HTML 代码, 从而向用户展示出完整的网页内容, 弥补了现有技术的一项空白。
     实施例八
     与上述本申请一种页面缓存的处理方法实施例三所提供的方法中的内容相对应, 参见图 12, 本申请还提供了一种页面缓存的处理装置的优选实施例八, 在本实施例中, 该装 置具体还可以包括 :
     缓存模块 1201, 用于将所述查找得到的 HTML 代码及其与所述分片 ID 的对应关系 缓存至缓存系统中 ;
     哈希运算模块 1202, 用于当某个分片的内容发生变化时, 按照所述分片的分片名 称和分片参数进行哈希运算以得到该分片的分片 ID ;
     删除模块 1203, 用于按照所述分片 ID 在缓存系统中查找并删除与该 ID 对应的 HTML 代码 ;
     所述缓存模块 1204, 具体用于将所述分片的 HTML 代码对应的头 HEADER 的值缓存 至所述缓存系统中。
     实施例九
     与上述本申请一种页面缓存的处理方法实施例四所提供的方法相对应, 参见图 13, 本申请还提供了一种页面缓存的处理装置的优选实施例九, 在本实施例中, 该装置具体 可以包括 :
     接收网页页面请求模块 1301, 用于接收针对网页页面的请求 ;
     判断模块 1302, 用于判断所述请求的网页页面是否需要进行全页缓存 ;
     直接渲染模块 1303, 用于当所述判断模块 1302 的结果为是时, 对所述网页页面直 接进行渲染, 以获取所述网页页面的内容 ;
     嵌套缓存处理装置 1304, 用于当所述判断模块 1302 的结果为否时, 获取所述网页 页面包括的第一层分片信息 ; 依据所述第一层分片信息依次对第一层分片执行解析过程, 所述解析过程具体为 : 依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲 染; 所述嵌套信息为当前分片是否包括其他分片的信息 ; 将所述渲染的渲染结果组合成所 述网页的完整的第一层分片内容。
     实施例十
     与上述本申请一种页面缓存的处理方法实施例五所提供的方法相对应, 参见图 14, 本申请还提供了一种页面缓存的处理装置的优选实施例十, 在本实施例中, 该装置具体 可以包括 :
     接收网页页面请求模块 1301, 用于接收针对网页页面的请求 ;
     所述判断模块 1302 具体可以包括 :
     获取缓存信息子模块 1401, 用于获取所述网页页面的 URL ;
     查找子模块 1402, 用于依据所述 URL 查找预置的缓存信息, 所述缓存信息包括所 述网页页面是否需要进行全页缓存的信息, 以及所述网页页面的缓存时间长度信息。
     所述直接渲染模块 1303 具体可以包括 :
     生成页面 ID 模块 1403, 用于在所述缓存时间长度还未到达时, 将所述网页页面的 URL 与页面参数生成 32 位的页面 ID ;
     第一查找 HTML 代码模块 1404, 用于依据所述页面 ID 从缓存系统中查找对应的页 面 HTML 代码。
     所述装置具体还可以包括 :
     第二查找 HTML 代码模块 1405, 用于触发 WEB 服务器的业务系统查找该页面 ID 对 应的 HTML 代码 ;
     缓存模块 1406, 用于将所述查找得到的 HTML 代码及其与所述页面 ID 的对应关系 缓存至缓存系统中。
     实施例十一
     与前述本申请提供的一种网页页面的分片嵌套缓存的处理方法和装置相对应, 本 申请还提供了一种网页页面的分片嵌套缓存的处理系统实施例十, 所述系统具体可以包括 客户端和 WEB 服务器 :
     所述客户端, 用于向 WEB 服务器请求网页页面 ;
     所述 WEB 服务器包括所述缓存处理装置, 所述缓存处理装置包括 :
     获取模块, 用于当接收到针对网页页面的请求时, 获取所述网页页面包括的第一 层分片信息 ;
     分片解析模块, 用于依据所述第一层分片信息依次对第一层分片执行分片解析过 程, 所述分片解析过程具体为 : 依据所述第一层分片的预置的嵌套信息对所述第一层分片 进行渲染 ; 所述嵌套信息为当前分片是否包括其他分片的信息 ;
     组合拼装模块, 用于将所述渲染的渲染结果组合成所述网页的完整的第一层分片 内容。同时本申请还提供了一种网页页面的缓存处理系统实施例, 所述系统具体可以包 括客户端和 WEB 服务器 :
     所述客户端, 用于向 WEB 服务器请求网页页面 ;
     所述 WEB 服务器包括所述缓存处理装置, 所述缓存处理装置包括 :
     接收网页页面请求模块, 用于接收针对网页页面的请求 ;
     判断模块, 用于判断所述请求的网页页面是否需要进行全页缓存 ;
     直接渲染模块, 用于当所述判断模块的结果为是时, 对所述网页页面直接进行渲 染, 以获取所述网页页面的内容 ;
     嵌套缓存处理装置, 用于当所述判断模块的结果为否时, 获取所述网页页面包括 的第一层分片信息 ; 依据所述第一层分片信息依次对第一层分片执行解析过程, 所述解析 过程具体为 : 依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染 ; 所述嵌 套信息为当前分片是否包括其他分片的信息 ; 将所述渲染的渲染结果组合成所述网页的完 整的第一层分片内容。
     需要说明的是, 本说明书中的各个实施例均采用递进的方式描述, 每个实施例重 点说明的都是与其他实施例的不同之处, 各个实施例之间相同或相似的部分互相参见即 可。对于装置类实施例而言, 由于其与方法实施例基本相似, 所以描述的比较简单, 相关之 处参见方法实施例的部分说明即可。
     最后, 还需要说明的是, 在本文中, 诸如第一和第二等之类的关系术语仅仅用来将 一个实体或者操作与另一个实体或操作区分开来, 而不一定要求或者暗示这些实体或操作 之间存在任何这种实际的关系或者顺序。而且, 术语 “包括” 、 “包含” 或者其任何其他变体 意在涵盖非排他性的包含, 从而使得包括一系列要素的过程、 方法、 物品或者设备不仅包括 那些要素, 而且还包括没有明确列出的其他要素, 或者是还包括为这种过程、 方法、 物品或 者设备所固有的要素。在没有更多限制的情况下, 由语句 “包括一个 ......” 限定的要素, 并不排除在包括所述要素的过程、 方法、 物品或者设备中还存在另外的相同要素。
     以上对本申请所提供的一种页面缓存的处理方法、 装置及系统进行了详细介绍, 本文中应用了具体个例对本申请的原理及实施方式进行了阐述, 以上实施例的说明只是用 于帮助理解本申请的方法及其核心思想 ; 同时, 对于本领域的一般技术人员, 依据本申请的 思想, 在具体实施方式及应用范围上均会有改变之处, 综上所述, 本说明书内容不应理解为 对本申请的限制。

网页页面的分片嵌套缓存的处理方法和装置.pdf_第1页
第1页 / 共28页
网页页面的分片嵌套缓存的处理方法和装置.pdf_第2页
第2页 / 共28页
网页页面的分片嵌套缓存的处理方法和装置.pdf_第3页
第3页 / 共28页
点击查看更多>>
资源描述

《网页页面的分片嵌套缓存的处理方法和装置.pdf》由会员分享,可在线阅读,更多相关《网页页面的分片嵌套缓存的处理方法和装置.pdf(28页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102331985A43申请公布日20120125CN102331985ACN102331985A21申请号201010225186222申请日20100712G06F17/3020060171申请人阿里巴巴集团控股有限公司地址英属开曼群岛大开曼岛资本大厦一座四层847号邮箱72发明人岳旭强董旗宇74专利代理机构北京集佳知识产权代理有限公司11227代理人逯长明王宝筠54发明名称网页页面的分片嵌套缓存的处理方法和装置57摘要本申请提供了一种网页页面的分片嵌套缓存的处理方法和装置,所述包括当接收到针对网页页面的请求时,获取所述网页页面包括的第一层分片信息;依据所述第一层分片信息。

2、依次对第一层分片执行分片解析过程,所述分片解析过程具体为依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染;所述嵌套信息为当前分片是否包括其他分片的信息;将所述分片解析过程的结果组合成所述网页的完整的第一层分片内容。本申请实施例可以在对网页页面的分片嵌套缓存,同时在网页页面的分片进行嵌套缓存时还能够递归地获取到各个分片的HTML代码,从而向用户展示出完整的网页内容,弥补了现有技术的一项空白。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书15页附图9页CN102331998A1/3页21一种网页页面的分片嵌套缓存的处理方法,其特征在于,包括当接收到针对。

3、网页页面的请求时,获取所述网页页面包括的第一层分片信息;依据所述第一层分片信息依次对第一层分片执行分片解析过程,所述分片解析过程具体为依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染;所述嵌套信息为当前分片是否包括其他分片的信息;将所述分片解析过程的结果组合成所述网页的完整的第一层分片内容。2根据权利要求1所述的方法,其特征在于,所述获取所述网页页面包括的第一层分片信息,具体包括获取所述网页的统一资源定位符URL;依据所述网页的URL查询得到该网页的模板;获得该网页的模板中第一层分片对应的分片名称和分片参数。3根据权利要求2所述的方法,其特征在于,所述依据所述第一层分片的嵌套信息对所。

4、述第一层分片进行渲染,具体包括依次依据第一层分片的分片名称和分片参数获取所述第一层分片的HTML代码和嵌套信息;依据所述嵌套信息判断所述第一层分片是否包括第二层分片;如果是,则对所述第二层分片进行递归渲染处理;继续判断所述第二层分片是否包括第三层分片,如果是,则对所述第三层分片进行所述递归渲染处理,直至最后判断得到第N层分片不再包括其他分片为止,所述N为大于3的整数,如果否,则结束渲染过程;所述递归渲染处理的方式为在待处理分片的上一层分片上生成所述待处理分片的占位符;依据所述待处理分片的分片名称和分片参数,获取所述待处理分片的上一层分片的HTML代码;将所述待处理分片的HTML代码替换所述待处。

5、理分片的占位符。4根据权利要求3所述的方法,其特征在于,所述依次依据第一层分片的分片名称和分片参数获取所述第一层分片的HTML代码,具体包括从配置服务器中查询所述第一层分片的缓存信息,所述缓存信息包括分片是否需要缓存的信息;依据所述第一层分片的缓存信息判断第一层分片是否需要缓存,如果是,则将所述第一层分片的分片名称和分片参数进行哈希运算以得到第一层分片的分片标识ID;并依据所述分片ID从缓存系统中查找与该分片ID对应的第一层分片的HTML代码;如果否,则由WEB服务器的业务系统查找该分片ID对应的HTML代码。5根据权利要求4所述的方法,其特征在于,如果所述第一层分片需要缓存而所述缓存系统中不。

6、包括所述第一层分片的HTML代码,还包括由WEB服务器的业务系统查找该分片ID对应的HTML代码;将所述查找得到的HTML代码及其与所述分片ID的对应关系缓存至缓存系统中。6根据权利要求4所述的方法,其特征在于,所述缓存信息还包括需要缓存的分片的缓存时间长度信息,则所述方法还包括当在所述缓存时间长度内某个分片的内容发生变化时,按照所述分片的分片名称和分片参数进行哈希运算以得到该分片的分片ID;权利要求书CN102331985ACN102331998A2/3页3按照所述分片ID在缓存系统中查找并删除与该ID对应的HTML代码。7根据权利要求5所述的方法,其特征在于,如果还包括头缓存,则所述方法还。

7、包括将所述分片的HTML代码对应的头HEADER的值缓存至所述缓存系统中。8一种网页页面的缓存处理方法,其特征在于,包括接收到针对网页页面的请求;判断请求的所述网页页面是否需要进行全页缓存,如果需要,则对所述网页页面直接进行渲染,以获取所述网页页面的内容;如果不需要,则获取所述网页页面包括的第一层分片信息;依据所述第一层分片信息依次对第一层分片执行分片解析过程,所述分片解析过程具体为依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染;所述嵌套信息为当前分片是否包括其他分片的信息;将所述分片解析过程的结果组合成所述网页的完整的第一层分片内容。9根据权利要求8所述的方法,其特征在于,所述判。

8、断请求的所述网页页面是否需要进行全页缓存,具体包括获取所述网页页面的URL,并依据所述URL查找预置的缓存信息,所述缓存信息包括所述网页页面是否需要进行全页缓存的信息,以及所述网页页面的缓存时间长度信息。10根据权利要求9所述的方法,其特征在于,对所述网页页面直接进行渲染,具体包括在所述缓存时间长度还未到达时,将所述网页页面的URL与页面参数生成32位的页面ID;依据所述页面ID从缓存系统中查找对应的页面HTML代码。11根据权利要求10所述的方法,其特征在于,如果查询不到HTML代码,则所述方法还包括由WEB服务器中的业务系统查找该页面ID对应的HTML代码;将所述查找得到的HTML代码及其。

9、与所述页面ID的对应关系缓存至缓存系统中。12一种网页页面的分片嵌套缓存的处理装置,其特征在于,该装置包括获取模块,用于当接收到针对网页页面的请求时,获取所述网页页面包括的第一层分片信息;分片解析模块,用于依据所述第一层分片信息依次对第一层分片执行分片解析过程,所述分片解析过程具体为依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染;所述嵌套信息为当前分片是否包括其他分片的信息;组合拼装模块,用于将所述渲染的渲染结果组合成所述网页的完整的第一层分片内容。13一种网页页面的缓存处理装置,其特征在于,该装置包括接收网页页面请求模块,用于接收针对网页页面的请求;判断模块,用于判断所述请求的网。

10、页页面是否需要进行全页缓存;直接渲染模块,用于当所述判断模块的结果为是时,对所述网页页面直接进行渲染,以获取所述网页页面的内容;嵌套缓存处理装置,用于当所述判断模块的结果为否时,获取所述网页页面包括的第一层分片信息;依据所述第一层分片信息依次对第一层分片执行解析过程,所述解析过程权利要求书CN102331985ACN102331998A3/3页4具体为依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染;所述嵌套信息为当前分片是否包括其他分片的信息;将所述渲染的渲染结果组合成所述网页的完整的第一层分片内容。权利要求书CN102331985ACN102331998A1/15页5网页页面的分。

11、片嵌套缓存的处理方法和装置技术领域0001本申请涉及网络数据处理领域,特别涉及网页WEB页面的分片嵌套缓存的处理方法和装置。背景技术0002在用户向网页服务器第一次请求网页页面时,为了提高访问网页的速度,通常网络资源浏览器例如IE浏览器会采用累积式加速的方法,将用户曾经访问的网页内容包括图片以及COOKIE文件等存放在电脑里,电脑里的这个存放空间,被称为IE缓存空间。以后每次访问网页时,IE浏览器会首先搜索这个缓存空间,如果其中已经缓存当前访问的内容,那IE浏览器就不必从网上下载这部分内容,而是直接从缓存读取,以提高访问网页的速度。0003对于网页的缓存目前现有技术中有两种方式,一种是全页缓存。

12、,指针对访问的网页整个页面进行缓存;另一种是分片缓存,指将访问的网页页面划分成若干部分的分片,例如,某个分片为图片信息,某个分片为文字信息等,然后针对某一分片的内容进行缓存。0004但是,有一些网页的分片之间因为其内容相关,所以有时候需要在某些分片之间实现嵌套缓存,例如,嵌套形式分片A包括分片B,而分片B又包括分片C的形式,对于分片A需要缓存,B不需要缓存,C又需要缓存的形式,现有技术无法实现。0005目前,需要本领域技术人员迫切解决的一个技术问题就是如何能够创新地提出一种网页页面的分片嵌套缓存的处理方法,以解决现有技术中无法实现分片嵌套缓存及其后续递归处理的技术问题。发明内容0006本申请所。

13、要解决的技术问题是提供一种页面缓存的处理方法,用以解决现有技术中无法实现分片嵌套缓存及其后续递归处理的技术问题。0007本申请还提供了一种页面缓存的处理装置,用以保证上述方法在实际中的实现及应用。0008为了解决上述问题,本申请公开了一种页面缓存的处理方法,包括0009当接收到针对网页页面的请求时,获取所述网页页面包括的第一层分片信息;0010依据所述第一层分片信息依次对第一层分片执行分片解析过程,所述分片解析过程具体为依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染;所述嵌套信息为当前分片是否包括其他分片的信息;0011将所述分片解析过程的结果组合成所述网页的完整的第一层分片内容。。

14、0012本申请还公开了一种网页页面的缓存处理方法,包括0013接收到针对网页页面的请求;0014判断请求的所述网页页面是否需要进行全页缓存,如果需要,则对所述网页页面直接进行渲染,以获取所述网页页面的内容;说明书CN102331985ACN102331998A2/15页60015如果不需要,则获取所述网页页面包括的第一层分片信息;依据所述第一层分片信息依次对第一层分片执行分片解析过程,所述分片解析过程具体为依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染;所述嵌套信息为当前分片是否包括其他分片的信息;将所述分片解析过程的结果组合成所述网页的完整的第一层分片内容。0016本申请公开了一。

15、种网页页面的分片嵌套缓存的处理装置,包括0017获取模块,用于当接收到针对网页页面的请求时,获取所述网页页面包括的第一层分片信息;0018分片解析模块,用于依据所述第一层分片信息依次对第一层分片执行分片解析过程,所述分片解析过程具体为依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染;所述嵌套信息为当前分片是否包括其他分片的信息;0019组合拼装模块,用于将所述渲染的渲染结果组合成所述网页的完整的第一层分片内容。0020本申请还提供了一种网页页面的缓存处理装置,该装置包括0021接收网页页面请求模块,用于接收针对网页页面的请求;0022判断模块,用于判断所述请求的网页页面是否需要进行全。

16、页缓存;0023直接渲染模块,用于当所述判断模块的结果为是时,对所述网页页面直接进行渲染,以获取所述网页页面的内容;0024嵌套缓存处理装置,用于当所述判断模块的结果为否时,获取所述网页页面包括的第一层分片信息;依据所述第一层分片信息依次对第一层分片执行解析过程,所述解析过程具体为依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染;所述嵌套信息为当前分片是否包括其他分片的信息;将所述渲染的渲染结果组合成所述网页的完整的第一层分片内容。0025与现有技术相比,本申请包括以下优点0026在本申请实施例中,可以在对网页页面的分片嵌套缓存,同时在网页页面的分片进行嵌套缓存时还能够递归地获取到各。

17、个分片的HTML代码,从而向用户展示出完整的网页内容,弥补了现有技术的一项空白。在本实施例中,缓存系统可以采用分布式集群服务器来实现,所述分布式集群服务器可以采用水平扩容的方式,增加充当缓存系统的服务器台数,这样就可以实现某一台服务器存储了分片的HTML代码之后,其他的分布式集群服务器就不再进行存储。同时采用本申请实施例的技术方案,可以实现分片之间不限层数的递归嵌套,同时也可以将每个分片的缓存时间设置为不相同的。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。附图说明0027为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地。

18、,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。0028图1是本申请实施例中所涉及到的系统框架图;0029图2是本申请的一种页面缓存的处理方法实施例一的流程图;说明书CN102331985ACN102331998A3/15页70030图3是本申请的一种页面缓存的处理方法实施例二的流程图;0031图4是本申请方法实施例二中步骤304的流程图;0032图5是本申请方法实施例二中第一层分片的分片名称示意图;0033图6是本申请的一种页面缓存的处理方法实施例三的流程图;0034图7是本申请的一种页面缓存的处理方法实。

19、施例四的流程图;0035图8是本申请的一种页面缓存的处理方法实施例五的流程图;0036图9是本申请的一种页面缓存的处理装置实施例六的结构框图;0037图10是本申请的一种页面缓存的处理装置实施例七的结构框图;0038图11是本申请装置实施例七中获取嵌套信息子模块1004的结构框图;0039图12是本申请的一种页面缓存的处理装置实施例八的结构框图;0040图13是本申请的一种页面缓存的处理装置实施例九的结构框图;0041图14是本申请的一种页面缓存的处理装置实施例十的结构框图。具体实施方式0042下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例。

20、仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。0043本申请可用于众多通用或专用的计算装置环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。0044本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。。

21、在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。0045本申请的主要思想之一可以包括,预先设置网页页面的各个分片的嵌套信息和缓存信息,所述嵌套信息为分片是否包括其他分片的信息;所述各个分片与对应的嵌套信息可保存在WEB服务器的网页模板中,在对当前分片解析时一并从网页模板中读取得到该嵌套信息。在所述网页模板中的信息还可包括分片名称和分片参数,所述分片名称可以标识出每一个分片,而分片参数是根据业务确定的。所述业务是指用户的某种需求,而实现用户某种需求的功能就是具体的业务。所述缓存信息为所述分片是否需要缓存的信息,以及需要缓存的分片的缓存时间长度信息。所述缓存信息可。

22、以保存在配置服务器中,在网页页面进行缓存或者网页页面的分片进行嵌套缓存时,可以从所述配置服务器中动态获得所述缓存信息。本申请中在接收到针对某个网页页面的请求时,首先可以判断所述网页页面是否需要进行全页缓存,如果需要,则对所述网页页面直接进行渲染,以获取所述网页页面的内容;如果不需要,则获取所述网页页面包括的第一层分片信息;依据所述第一层分片信息依次对第一层分片执行解析过程,所述分片解析过程具体为依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染;所述嵌套信息为当前分片是否包括其他分片的信说明书CN102331985ACN102331998A4/15页8息;将所述分片解析过程的结果组合成。

23、所述网页的完整的第一层分片内容。0046需要说明的是,在本申请实施例中,所提及的网页页面包括的分片,可以允许至少具有两层的分片,并且各层分片可以有一个或多个,其中,所述第一层分片与第二层分片是父子关系,但是并不一定是所有的第一层分片都会包括第二层分片,也可以是其中的一个或者多个第一层分片包括第二层分片。其中所述第二层分片还可以包括第三层分片,依此类推,本申请实施例中将这种嵌套关系称为递归嵌套。并且本申请实施例中的各个层次的分片之间的缓存信息是相互独立的,例如,可以预先将当前层分片设置为需要缓存,而其下一层的子分片设置为不需要缓存,并且该下一层的子分片的子分片又可以设置为需要缓存等。缓存信息都可。

24、以预先设置好并存贮在配置服务器中,当然,配置服务器中的这些设置好的缓存信息在后续使用过程中也可以实时更新。0047参考图1所示,为本申请实施例中所涉及到的系统框架图,用户向网页服务器请求网页,所述缓存处理装置可以集成在WEB服务器上。所述缓存处理装置可以是WEB服务器新增的一个功能实体,也可以是单独作为一个功能实体来实现,该缓存处理装置可以执行本申请实施例中对网页的分片嵌套缓存时的递归处理方法。缓存系统用于存储各个分片或页面的HTML代码,缓存处理装置可以向所述缓存系统请求分片或者页面的HTML代码,如果缓存系统中未包括分片或页面的HTML代码,则WEB服务器中的业务系统负责提供该分片或者页面。

25、的HTML代码,所述业务系统可以理解为WEB服务器中完成某个用户请求业务的若干个模块组成的当前系统。0048需要说明的是,本申请在实际应用中,也可以不采用缓存系统来缓存HTML代码,而是直接在客户端进行本地保存,例如,直接缓存至客户端的计算机内存中,此时客户端和WEB服务器之间直接进行HTML代码的交互,如果客户端在本地查找不到对应分片或者页面的HTML代码,则触发WEB服务器的业务系统进行查找,如果客户端在本地查找到相应的HTML代码,则直接在用户请求的网页页面上进行显示。不过因为此种方式对本地内存或者计算机的性能要求较高,并且网页页面的种类非常繁多,因此,一般采用单独的分布式集群服务器来作。

26、为本申请实施例中的缓存系统。0049本申请实施例中的系统框架还可以包括配置服务器,所述配置服务器可以向所述缓存处理装置提供各个分片的缓存信息,但是在本申请实现过程中也可以不需要该配置服务器,此时所述缓存信息可以在WEB服务器中预先给每个分片都一次性设置完毕,类似于分片的固定参数不可改变,而此时缓存系统的各个分片的缓存信息就无法动态修改。0050在本申请的实施例中,所述缓存信息可以采用文本方式实现,也可以将缓存信息封装成程序中的对象。当把缓存信息封装成程序中的对象时,这样可以使得当前分片是否包括了其他分片的嵌套方式或者某个嵌套中是否有死循环,都可以从THREAD_LOCAL中获取相应的缓存信息进。

27、行判断即可。所述THREAD_LOCAL为WEB服务器的一个线程级别的变量,可以在某一个请求过程中从配置服务器中向缓存处理装置提供缓存信息。0051采用本申请实施例中的网页页面缓存的处理方法,即可以实现现有技术中可以实现的全页缓存,也可以实现现有技术中无法实现的网页页面的分片嵌套缓存,弥补了现有技术的缺陷。0052实施例一0053图2示出了本申请一种页面缓存的处理方法实施例一的流程图,可以包括以下步说明书CN102331985ACN102331998A5/15页9骤0054步骤201当接收到针对网页页面的请求时,获取所述网页页面包括的第一层分片信息。0055在本实施例中,网页页面如果确定了,该。

28、网页页面包括的第一层分片信息也可以确定,因为同一个网页页面的分片格式是相同的,即该网页页面需要划分为哪几个分片,这些分片的位置和名称等信息。其中,每一个分片在网页页面上实质上都是一个占位符,这个占位符可以在任何其他网页页面上使用,只有当最后渲染出该分片结果的时候才会将占位符替换成分片的具体内容。一般情况下,所述分片的具体内容指的是该分片的具体内容对应的超文本标记语言HYPERTEXTMARKUPLANGUAGE,HTML代码。0056在本实施例中,所述网页页面包括的分片可以嵌套缓存,所述嵌套缓存的含义可以理解为,如果第一层分片A包括第二层分片B,且该第二层分片B也包括第三层分片C,则依据对分片。

29、A、B和C预置的缓存信息,来实现对分片A和C缓存,而分片B不缓存的功能。但是不管第一层分片有没有包括其他分片,在本步骤获取到的都是第一层分片信息,而后续在对该第一层分片进行解析时,才能依次获取到分片的嵌套信息。0057步骤202依据所述第一层分片信息依次对第一层分片执行分片解析过程,所述分片解析过程具体为依据所述第一层分片的预置的嵌套信息对所述第一层分片进行渲染;所述嵌套信息为当前分片是否包括其他分片的信息。0058获得所述网页页面的第一层分片信息之后,执行对第一层分片的解析过程。因为在解析分片的过程中,可以从配置服务器中动态获取到所述各个第一层分片的嵌套信息,即是当前第一层分片是否包括了第二。

30、层分片的信息,以及所包括的第二层分片信息。在本步骤中,需要对所有的第一层分片都进行解析,其中,各个第一层分片的解析过程可以同时执行,也可以先后执行,其执行顺序不影响本申请实施例的实现。0059其中,本步骤提及的渲染过程为,依据第一层分片的分片名称和分片参数查找所述第一层分片的具体内容对应的HTML代码的。其中,该渲染过程和现有技术中的渲染过程类似,在此就不再多做介绍。0060步骤203将所述渲染的渲染结果组合成所述网页的完整的第一层分片内容。0061在本步骤中,当第一层分片不包括其他分片时,则渲染结果即是该第一层分片的HTML代码;当第一层分片包括第二层分片时,或者第二层分片又包括了第三层分片。

31、时,甚至按照递归的方式直至第N1层分片包括第N层分片,则第一层分片的渲染结果则是包括了第二层至第N层分片的HTML代码,因此,可以将所述第一层分片的渲染内容组合生成该网页的第一层分片内容。0062实施例二0063图3示出了本申请一种页面缓存的处理方法实施例二的流程图,可以包括以下步骤0064步骤301当接收到针对网页页面的请求时,获取所述网页的统一资源定位符URL。0065在本步骤中,在接收到某个网页页面的请求时,首先获取到该网页对应的统一资源定位符UNIFORM/UNIVERSALRESOURCELOCATOR,URL。以某网络交易平台中“宝贝详情”页面为例,假设该“宝贝详情”页面的URL地。

32、址为XXXXXXCOM/DETAILHTMLID123。说明书CN102331985ACN102331998A6/15页100066步骤302依据所述网页的URL查询得到该网页的模板。0067因为每一个网页都有唯一的URL,同时每一个网页也都有一个模板,所以依据所述网页的URL即可知道该网页页面所采用的模板。假设“宝贝详情”页面的模板信息为“DETAILVM”,在本步骤中根据“宝贝详情”的页面地址得到模板信息为“DETAILVM”。0068需要说明的是,每个页面所采用的模板即可以是独立的,也可以是多个页面共用的。页面在采用模板时需要将模板中规定的分片部分进行填充。0069步骤303获得该网页的。

33、模板中第一层分片对应的分片名称和分片参数。0070当网页的模板确定之后,相应地确定了该模板对应的页面的分片格式。本申请与现有技术不同的是,本申请中网页页面不仅包括第一层分片,而且其包括的第一层分片还可以递归的包括至少一层分片。但是在本步骤通过网页页面所获得的分片仅仅为第一层分片对应的分片名称和分片参数。其中,所述分片参数是根据业务确定的,所述业务是指用户的某种需求,而实现用户某种需求的功能就是具体的业务。以“掌柜信息”为例,其分片参数就是卖家的用户ID;以“宝贝详情”页面为例时,其分片参数就是宝贝的信息和卖家的用户ID。0071在一个模板中引入某个分片,可通过如下方式实现例如,分片名称为“掌柜。

34、信息”,而模板名称为“宝贝详情”,则如果在“宝贝详情”中引用“掌柜信息”分片,则代码如下0072CONTROLSET“USERINFO”ADDPRAMS“USERID”,12340073其中,“ADDPRAMS”中的内容即是对应的分片“掌柜信息”的分片参数,其中的USERID即是用户ID,为“1234”;而“CONTROLSET“USERINFO”则表示在宝贝详情模板中引用了这个分片。当然,该代码的实现仅仅是一个具体例子,其所公开的内容不应理解为对本申请的限定。0074步骤304依据第一层分片的分片名称和分片参数获得所述第一层分片的嵌套信息,并依据所述第一层分片的嵌套信息获得所述第一层分片的H。

35、TML代码;所述嵌套信息为当前分片是否包括其他分片的信息。0075在步骤304中,当获得所述第一层分片的分片名称和分片参数时,可以获得该第一层分片嵌套信息和HTML代码。具体地,所述嵌套信息可以从配置服务器中获得,而配置服务器也可以向WEB服务器中的缓存处理装置发送。分片对应的HTML代码可以是网页页面将要显示的图片、文字等信息,而该分片及其对应的HTML代码都可以被其他网页页面的模板所共用。例如,对于网络交易平台中的卖方用户的“宝贝详情”页面的“掌柜信息”分片,其与“店铺页面”的“掌柜信息”分片就属于同一个分片。0076同时,在获取所有的第一层分片的HTML代码的时候,参考图4所示,该获取第。

36、一层分片的HTML代码的步骤可以包括0077步骤401从配置服务器中查询所述第一层分片的缓存信息,所述缓存信息包括分片是否需要缓存的信息,以及需要缓存的分片的缓存时间长度信息。0078在所述配置服务器中保存着网页页面的各个层的分片的缓存信息,所述缓存信息包括分片是否需要缓存的信息,以及需要缓存的分片的缓存时间长度信息。所述缓存时间长度信息用于表示当前分片的在缓存系统中的有效时间,当分片在缓存系统中的缓存时间超过所述时间长度时,该分片就会失效,所述缓存系统中就不会再有该分片的具体内容。所说明书CN102331985ACN102331998A7/15页11述缓存信息可以是预先设置好的。当然,后续如。

37、果需要对某个分片的缓存信息进行更改时,也可以直接对配置服务器中保存的信息进行更改即可,这样从配置服务器中查询得到的就是最新的缓存信息。对于缓存信息的实现,可以采用“1”来表示当前分片需要保存,并采用“0”来表示当前分片不需要保存;对于缓存时间长度信息的实现,可以采用直接将时间长度信息与所述分片名称或者分片参数信息等进行关联即可。当然,缓存信息的实现可以在实际应用中有多种方式,本申请实施例无需对此做出特别的限定。0079需要说明的是,因为缓存失效的时间是由缓存系统控制,单独对于缓存处理装置来讲,在执行本申请实施例的过程中并不知道当前处理的页面或者分片还有多久才会失效,所以在查询缓存系统时,如果查。

38、询不到的话就证明当前分片的内容已经失效了。0080步骤402依据所述第一层分片的缓存信息判断第一层分片是否需要缓存;如果是,则进入步骤403;如果否,则进入步骤404。0081针对步骤401中所举的例子来讲,如果获取到的表示分片是否需要缓存的信息为“1”,则认为该分片的判断结果是需要缓存。0082步骤403将所述第一层分片的分片名称和分片参数进行哈希运算以得到第一层分片的分片标识ID;并依据所述分片ID从缓存系统中查找与该分片ID对应的第一层分片的HTML代码,进入步骤405。0083其中,所述第一层分片的分片名称可以参考图5所示,所述网页页面的第一层分片包括分片A“宝贝描述”、分片B“导航”。

39、、分片C“掌柜信息”以及分片D“店铺类目”。其中,第一层分片C“掌柜信息”还包括第二层分片C1“掌柜信用度”。0084在本步骤中,可以将第一层分片的分片名称和分片参数进行哈希HASH运算,运算的结果即是所述第一层分片的分片ID,该ID一般情况下为32位。依据该32位的分片ID,可以从缓存系统中查找获取到该分片ID对应的HTML代码,而缓存系统中则保存着各个分片ID与HTML代码之间的对应关系和该HTML代码。0085需要说明的是,在对第一层分片进行渲染时,其具体方式为先将该第一层分片在网页上的位置生成一个占位符,并获取对应的HTML代码,获得之后将该HTML代码替换所述第一层分片的占位符。在对。

40、分片进行渲染时,不管其处于网页的哪一层,都可以按照上述方式进行渲染。其中,所述占位符可以理解为该分片的一个位置,后续可以在该位置中添加内容。0086步骤404由WEB服务器中的业务系统查找该第一层分片的分片ID对应的HTML代码,进入步骤405。0087当某个分片标识为不需要缓存时,需要由WEB服务器中的业务系统来进行当前分片的渲染,渲染结果就是当前分片的HTML代码。具体的,是由所述业务系统的渲染模块从数据库或者搜索引擎或者文件系统中查找该分片ID对应的HTML代码。0088步骤405依据第一层分片预置的嵌套信息判断所述第一层分片是否包括第二层分片;如果是,则进入步骤406;如果否,则结束对。

41、第一层分片的渲染过程。0089在本步骤可依据嵌套信息来判断当前解析的第一层分片是否包括第二层分片。0090步骤406对所述第二层分片进行递归渲染处理,所述递归渲染处理的方式为在待处理分片的上一层分片上生成所述待处理分片的占位符;依据所述待处理分片的分片名称和分片参数,获取所述待处理分片的HTML代码;将所述待处理分片的HTML代码替换所述说明书CN102331985ACN102331998A8/15页12待处理分片的占位符,进入步骤407。0091本步骤是在第一层分片包括第二层分片时,实现对第二层分片的递归渲染处理,即是在第一层分片上首先生成第二层分片的占位符,然后依据第二层分片的分片名称和分。

42、片参数,采用相同的方式获取所述第二层分片的HTML代码,其中,所述采用相同的方式的含义为对所述第二层分片的分片名称和分片参数进行哈希运算以得到32位的第二层分片ID,当所述第二层分片需要缓存时,则依据该ID到缓存系统中查询获取对应的HTML代码,如果该缓存系统中没有对应的HTML代码,或者所述第二层分片是不需要缓存的,则依据业务性能从数据库中或者从互联网上获取到对应的HTML代码,查找之后再将所述第二层分片的占位符部分替换为所述第二层分片的HTML代码。0092步骤407继续判断所述第二层分片是否包括第三层分片,如果是,则进入步骤408;如果否,则结束第二层分片的渲染流程。0093在对所述第二。

43、层分片的HTML代码查找结束之后,则继续判断所述第二层分片是否包括第三层分片,如果第二层分片不再包括第三层分片,则结束第二层分片的渲染过程。0094更具体的来讲,如果第二层分片继续包含第三层分片的话,先将第二层分片的内容进行渲染,同时将第三层分片的部分在第二层分片上生成占位符,然后再渲染第三层分片,并将第三层分片的渲染内容填充进该第二层分片的占位符中,所得到的结果即是第二层分片的HTML代码。以上面掌柜信息的例子来讲,“掌柜信息”分片中包含“信用度”分片,那么在递归渲染处理的时候,先将“掌柜信息”分片的信息渲染,“信用度”分片在“掌柜信息”分片上的位置先设置为占位符,然后再渲染该“信用度”分片。

44、,并将“信用度”分片的渲染内容填充进“掌柜信息”分片的占位符中,最后返回“掌柜信息”分片的渲染结果。0095步骤408对所述第三层分片进行所述递归渲染处理,直至最后判断得到第N层分片不再包括其他分片为止,所述N为大于3的整数。0096在本步骤,按照对第一层分片和第二层分片所做的递归渲染处理,直至最后判断得到第N层分片不再包括其他层级的分片位置,所述N为大于3的整数。0097步骤305将获取到的所有的第一层分片的HTML代码组合成所述网页的完整的第一层分片内容。0098在本步骤中,需要将对第一层分片进行渲染的渲染结果进行组合,所述渲染结果即是第一层分片的HTML,如果第一层分片还递归的包括了至少。

45、一层分片,则所述第一层分片的渲染结果还包括所述至少一层分片的HTML代码,此步骤中需要将所述各个分片的HTML代码组合形成所述网页的完整的第一层分片内容。0099步骤306将所述完整的第一层分片内容在客户端的网页上向用户进行展示。0100将组合成的完整的第一层分片的内容在客户端的网页上向用户进行展示,展示结果即是用户看到的网页内容。0101本实施例中,可以在对网页页面的分片嵌套缓存,同时在网页页面的分片进行嵌套缓存时还能够递归地获取到各个分片的HTML代码,从而向用户展示出完整的网页内容,弥补了现有技术的一项空白。0102实施例三0103参考图6,示出了本申请一种页面缓存的处理方法实施例三的流。

46、程图,本实施例可以理解为将本申请的页面缓存的处理方法应用于实际中的一个具体例子,可以包括以下步说明书CN102331985ACN102331998A9/15页13骤0104步骤601当接收到针对网页页面的请求时,获取所述网页页面包括的第一层分片信息。0105步骤602从配置服务器中查询所述第一层分片的缓存信息,所述缓存信息包括分片是否需要缓存的信息,以及需要缓存的分片的缓存时间长度信息。0106步骤603依据所述第一层分片的缓存信息判断第一层分片是否需要缓存,如果是,则进入步骤604;如果否,则进入步骤605。0107步骤604将所述第一层分片的分片名称和分片参数进行哈希运算以得到第一层分片的。

47、分片标识ID;依据所述分片ID从缓存系统中查找与该分片ID对应的第一层分片的HTML代码,如果查找到该HTML代码,则进入步骤606;如果没有查找到对应的HTML代码,则进入步骤605。0108在本步骤中,虽然所述第一层分片是需要缓存的,但是所述缓存系统中却可能查询不到所述第一层分片对应的HTML代码。例如,当所述第一层分片的缓存时间已到,所述缓存的第一层分片的内容失效,这种情况下就可能查询不到。其中,所述各个层的分片的缓存时间是预先设置好的,也可以存储在配置服务器中。0109步骤605由WEB服务器的业务系统负责查找该分片ID对应的HTML代码。0110步骤606当第一层分片需要缓存而缓存系。

48、统中却不存在该分片的HTML代码时,将所述查找得到的HTML代码及其与所述分片ID的对应关系缓存至缓存系统中。0111在本步骤中,第一层分片需要缓存的HTML代码却没有被存储进缓存系统中,因此在执行步骤605之后,可以将查找到的HTML代码存储到缓存系统中。而如果第一层分片不需要缓存,那么查找到该第一层分片的HTML代码时,就无需存储到缓存系统中。0112需要说明的是,步骤606虽然在步骤605之后,但是步骤606只有在第一层分片需要缓存的HTML代码没有被存储进缓存系统时才执行,因此步骤606并不是本实施例所必须的步骤。0113步骤607依据预置的嵌套信息判断所述第一层分片是否包括第二层分片。

49、;如果是,则对所述第二层分片进行递归渲染处理,所述递归渲染处理的方式为在待处理分片的上一层分片上生成所述待处理分片的占位符;依据所述待处理分片的分片名称和分片参数,获取所述待处理分片的上一层分片的HTML代码;将所述待处理分片的HTML代码替换所述待处理分片的占位符。0114步骤608继续判断所述第二层分片是否包括第三层分片,如果是,则对所述第三层分片进行所述递归渲染处理,直至最后判断得到第N层分片不再包括其他分片为止,所述N为大于3的整数,如果否,则结束渲染过程。0115本实施例中的步骤607和步骤608在上一个实施例中都进行了详细的描述,因为本实施例的实现方式与上一个实施例相同,因此此处不再赘述。0116步骤609当某个分片的内容发生变化时,按照所述分片的分片名称和分片参数进行哈希运算以得到该分片的分片ID。0117在本实施例中,所述步骤609和步骤610可以实现对缓存系统中所存储的分片的HTML代码实现主动失效的功能。主动失效的含义为,即便某个分片的缓存时间还未过期,也可通过执行步骤609和610将缓存系统中该分片对应的HTML代码删除。说明书CN102331985ACN102331998A10/15页140118步骤610按照所述分片ID,在缓存系统中查找并删除与该ID对应的HTML代码。0119在实际应用中,有一些应用场景需要在分片的HTML代码未到达预定的缓存时间就。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1