书签 分享 收藏 举报 版权申诉 / 13

由服务器端实现网页渲染的方法、设备和系统.pdf

  • 上传人:00****42
  • 文档编号:4215541
  • 上传时间:2018-09-07
  • 格式:PDF
  • 页数:13
  • 大小:531.36KB
  • 摘要
    申请专利号:

    CN201010586281.5

    申请日:

    2010.12.03

    公开号:

    CN102487402A

    公开日:

    2012.06.06

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):H04L 29/08申请日:20101203|||公开

    IPC分类号:

    H04L29/08; G06F17/30

    主分类号:

    H04L29/08

    申请人:

    腾讯科技(深圳)有限公司

    发明人:

    徐羽; 阮曙东; 钭伟雨

    地址:

    518044 广东省深圳市福田区振兴路赛格科技园2栋东403室

    优先权:

    专利代理机构:

    北京德琦知识产权代理有限公司 11018

    代理人:

    谢安昆;宋志强

    PDF完整版下载: PDF下载
    内容摘要

    本发明实施例提供了由服务器端实现网页渲染的方法、设备和系统,其中,所述服务器端包含内核;该方法包括:预先在服务器端设置渲染服务器RenderServer;所述渲染服务器将接收的页面解析成DOM树,并将接收的页面发送至所述内核,由所述内核对所述页面进行渲染,形成渲染树;所述渲染服务器依据所述DOM树将所述渲染树上渲染对象对应的数据信息转换为二进制流,并下发给移动终端,由所述移动终端依据接收的二进制流执行绘制操作,以实现网页浏览。采用本发明,能够避免由手机浏览器对网页标签进行解析渲染所带来的技术问题。

    权利要求书

    1: 一种由服务器端实现网页渲染的方法, 所述服务器端包含内核 webcore ; 其特征在 于, 预先在服务器端设置渲染服务器 RenderServer ; 该方法包括 : 所述渲染服务器将接收的页面解析成 DOM 树, 并将接收的页面发送至所述内核, 由所 述内核对所述页面进行渲染, 形成渲染树 ; 所述渲染服务器依据所述 DOM 树将所述渲染树上渲染对象对应的数据信息转换为二 进制流, 并下发给移动终端, 由所述移动终端依据接收的二进制流执行绘制操作, 以实现网 页浏览。
    2: 根据权利要求 1 所述的方法, 其特征在于, 所述服务器端还包括 : 内核引擎服务器 ChromeServer、 数据库 DCache 和转发服务器 BrokerServer ; 在所述渲染服务器接收页面之前, 进一步包括 : 所述内核引擎服务器抓取所述移动终端发送的 URL 请求对应的原始网页, 通过解析所 述原始网页获取并存储所述原始网页中图片标签对应的图片信息至所述数据库, 以及执行 所述原始网页包含的 JS, 并向所述转发服务器发送解析后的网页 ; 所述转发服务器接收到网页后, 从所述数据库读取图片信息, 并插入至该网页中对应 该图片信息的图片标签处, 得到所述页面, 之后将所述页面发送至所述渲染服务器。
    3: 根据权利要求 2 所述的方法, 其特征在于, 所述服务器端还包括连接在所述内核引 擎服务器和所述转发服务器之间的页面转换服务器 SkeetServer ; 所述转发服务器接收的网页是通过所述页面转换服务器转发的, 其中, 所述转发包括 : 所述页面转换服务器接收所述内核引擎服务器发送的解析后的网页, 并判断所述移动终端 是否支持所述解析后的网页, 如果否, 则将所述解析后的网页转换为所述移动终端支持的 网页, 并转发至所述转发服务器, 如果是, 将所述解析后的网页转发至所述转发服务器。
    4: 根据权利要求 1 所述的方法, 其特征在于, 所述渲染服务器依据 DOM 树将渲染树上渲 染对象对应的数据信息转换为二进制流包括 : 从所述渲染树上获取所述移动终端需要的渲染 Render 对象 ; 针对获取的每一 Render 对象, 获取该 Render 对象的渲染信息, 以及在所述 DOM 树上获 取该 Render 对象对应的 DOM 元素和该 DOM 元素的属性 ; 将获取的渲染信息、 DOM 元素和该 DOM 元素的属性分别进行二进制编码, 得到二进制 流。
    5: 根 据 权 利 要 求 4 所 述 的 方 法, 其 特 征 在 于, 所述移动终端需要的渲染对象为 : RenderText 对象、 RenderImage 对象、 控件 Render 对象、 以及与所述移动终端逻辑相关的 Render 对象 ; 或者为所述渲染树上所有的 Render 对象。
    6: 根据权利要求 4 所述的方法, 其特征在于, 所述二进制编码是按照 TLV 编码格式执行 的; 该方法进一步包括 : 在该得到的二进制流的前部或者后部增加对应该二进制流的文件 标识和版本号, 以供识别该二进制流。
    7: 根据权利要求 3 所述的方法, 其特征在于, 所述渲染服务器下发二进制流给移动终 端包括 : 所述渲染服务器通过页面转换服务器发送所述二进制流至所述转发服务器 ; 所述 转发服务器将接收的二进制流进行 WUP 协议组包和压缩, 下发给移动终端 ; 所述移动终端依据接收的二进制流执行绘制操作包括 : 2 移动终端通过解析 WUP 协议组包得到二进制流, 依据该二进制流执行绘制操作。
    8: 一种由服务器端实现网页渲染的设备, 其特征在于, 所述设备设置在服务器端, 所述 服务器端包含内核 webcore ; 所述设备包括 : 处理单元, 用于接收页面, 将所述页面解析成 DOM 树, 并发送所述页面至所述内核, 由 所述内核对所述页面进行渲染, 形成渲染树 ; 转换单元, 用于依据所述 DOM 树将所述渲染树上渲染对象对应的数据信息转换为二进 制流, 并下发给移动终端, 由所述移动终端依据接收的二进制流执行绘制操作, 以实现网页 浏览。
    9: 根据权利要求 8 所述的设备, 其特征在于, 所述转换单元包括 : 第一获取子单元, 用于从所述渲染树上获取所述移动终端需要的渲染 Render 对象 ; 第二获取子单元, 用于针对获取的每一 Render 对象, 获取该 Render 对象的渲染信息, 以及在所述 DOM 树上获取该 Render 对象对应的 DOM 元素和该 DOM 元素的属性 ; 编码子单元, 用于将获取的渲染信息、 DOM 元素和该 DOM 元素的属性进行二进制编码, 得到二进制流 ; 转发子单元, 用于将所述二进制流进行 WUP 协议组包和压缩, 下发给移动终端, 以供移 动终端通过解析 WUP 协议组包得到二进制流, 依据该二进制流执行绘制操作。
    10: 根据权利要求 9 所述的设备, 其特征在于, 所述移动终端需要的渲染对象为 : RenderText 对象、 RenderImage 对象、 控件 Render 对象、 以及与所述移动终端逻辑相关的 Render 对象 ; 或者, 为所述渲染树上所有的 Render 对象。
    11: 一种由服务器端实现网页渲染的系统, 其特征在于, 该系统包括内核 webcore、 移 动终端和如权利要求 8 至 10 任一所述的设备。
    12: 根据权利要求 11 所述的系统, 其特征在于, 所述系统还包括 : 内核引擎服务器 ChromeServer、 数据库 DCache 和转发服务器 BrokerServer ; 所述内核引擎服务器, 用于抓取所述移动终端发送的 URL 请求对应的原始网页, 通过 解析所述原始网页获取并存储所述原始网页中图片标签对应的图片信息至所述数据库, 以 及执行所述原始网页包含的 JS, 并向所述转发服务器发送解析后的网页 ; 所述转发服务器, 用于接收到网页后, 从所述数据库读取图片信息, 并插入至该网页中 对应该图片信息的图片标签处, 得到所述页面, 之后将所述页面发送至所述设备中的处理 单元。
    13: 根据权利要求 12 所述的系统, 其特征在于, 所述系统还包括连接在所述内核引擎 服务器和所述转发服务器之间的页面转换服务器 SkeetServer ; 所述页面转换服务器接收所述内核引擎服务器发送的解析后的网页, 并判断所述移 动终端是否支持所述解析后的网页, 如果否, 则将所述解析后的网页转换为所述移动终端 支持的网页, 并转发至所述转发服务器, 如果是, 将所述解析后的网页转发至所述转发服务 器。

    说明书


    由服务器端实现网页渲染的方法、 设备和系统

        【技术领域】
         本发明涉及计算机技术领域, 特别涉及由服务器端实现网页渲染的方法、 设备和系统。 背景技术 随着 3G 技术的推广、 以及移动电话价格和入网费用的降低, 人们对于手机上网的 需求, 逐渐的从访问简单以文本为主的 Wap 网页, 转向了直接访问互联网网站, 以获取更加 丰富的内容。目前, 在手机直接访问互联网时, 互联网都是返回网页标签给手机浏览器, 由 手机浏览器对网页标签进行解析渲染, 最后完成绘制显示。
         但是, 由于手机和 PC 相比, 最重要区别是手机的内存容量小、 cpu 主频低、 网络传 输速度慢、 费用高。如果由手机浏览器对网页标签进行解析渲染, 这会存在以下问题 :
         1) 占用内存太大
         手机浏览器为了实现对网页标签进行解析渲染, 需要在内存中存储一整套的解析 渲染引擎代码, 并且, 手机浏览器在对网页标签进行渲染时, 需要保存对象变量等至内存 中, 这会导致手机内存空存被大量占用。
         2) 执行速度慢
         由于网页的渲染是涉及到大量的计算, 而手机的 cpu 主频相对于 PC 来说是非常低 的, 这大大减慢了网页渲染的执行速度。
         3) 网络速度太慢
         由于手机相对于 PC, 无线网络的传输速率较低, 而互联网上的网页数据往往尺寸 较大, 需要花费很长的时间才能传输到手机。
         发明内容
         本发明提供了由服务器端实现网页渲染的方法、 设备和系统, 以避免由手机浏览 器对网页标签进行解析渲染所带来的技术问题。
         本发明提供的技术方案包括 :
         一种由服务器端实现网页渲染的方法, 所述服务器端包含内核 webcore ; 关键在 于, 预先在服务器端设置渲染服务器 RenderServer ; 该方法包括 :
         所述渲染服务器将接收的页面解析成 DOM 树, 并将接收的页面发送至所述内核, 由所述内核对所述页面进行渲染, 形成渲染树 ;
         所述渲染服务器依据所述 DOM 树将所述渲染树上渲染对象对应的数据信息转换 为二进制流, 并下发给移动终端, 由所述移动终端依据接收的二进制流执行绘制操作, 以实 现网页浏览。
         一种由服务器端实现网页渲染的设备, 所述设备设置在服务器端, 所述服务器端 包含内核 ; 所述设备包括 :
         处理单元, 用于接收页面, 将所述页面解析成 DOM 树, 并发送所述页面至所述内核, 由所述内核对所述页面进行渲染, 形成渲染树 ;
         转换单元, 用于依据所述 DOM 树将所述渲染树上渲染对象对应的数据信息转换为 二进制流, 并下发给移动终端, 由所述移动终端依据接收的二进制流执行绘制操作, 以实现 网页浏览。
         一种由服务器端实现网页渲染的系统, 该系统包括内核、 移动终端和如上所述的 设备。
         由以上技术方案可以看出, 本发明中, 通过在服务器端增加渲染服务器, 由该渲染 服务器完成网页的渲染, 并将渲染的结果返回给手机浏览器, 由手机浏览器根据渲染结果 执行绘制操作。这显然能够避免由手机浏览器对网页标签进行解析渲染所带来的技术问 题, 降低手机浏览器的 CPU、 内存和网络流量的压力。 附图说明
         图 1 为本发明实施例提供的基本流程图 ;
         图 2 为本发明实施例提供的详细流程图 ;
         图 3 为本发明实施例提供的步骤 210 的流程图 ;
         图 4 为 TLV 编码格式示意图 ; 图 5 为本发明实施例提供的设备基本结构图 ; 图 6 为本发明实施例提供的设备详细结构图。具体实施方式
         本发明实施例主要是由服务器端完成网页的渲染, 并将渲染的结果返回给手机浏 览器, 由手机浏览器根据渲染结果执行绘制操作。 这相比于现有技术, 能够降低手机浏览器 的 CPU、 内存和网络流量的压力。
         为了使本发明的目的、 技术方案和优点更加清楚, 下面结合附图和具体实施例对 本发明进行详细描述。
         参见图 1, 图 1 为本发明实施例提供的基本流程图。在执行该流程之前, 需要预先 在服务器端设置渲染服务器, 其中, 服务器端包含内核。基于此, 如图 1 所示, 该流程可包括 以下步骤 :
         步骤 101, 渲染服务器将接收的页面解析成 DOM 树, 并将接收的页面发送至所述内 核, 由所述内核对所述页面进行渲染, 形成渲染 (Render) 树。
         本步骤 101 中, 渲染服务器可按照现有解析方法将接收的页面解析成 DOM 树。内 核可按照现有渲染方法将渲染服务器接收的页面进行渲染, 形成渲染树。
         步骤 102, 渲染服务器依据所述 DOM 树将所述渲染树上渲染对象对应的数据信息 转换为二进制流, 并下发给移动终端, 由所述移动终端依据接收的二进制流执行绘制操作, 以实现网页浏览。
         也就是说, 服务器端代替移动终端比如手机执行网页渲染功能, 并将渲染执行结 果发送给移动终端, 移动终端即可直接根据接收的二进制流进行绘制操作 ( 具体可与现有 绘制操作类似 ), 如此, 即可流畅的浏览网页。
         至此, 完成图 1 所示的流程。下面对本发明实施例进行详细描述。
         该实施例主要是由移动终端比如手机和服务器端之间的通信协议来完成的, 具体 可参见图 2 所示的流程。
         参见图 2, 图 2 为本发明实施例提供的详细流程图。如图 2 所示, 该流程可包括以 下步骤 :
         步骤 201, 手机发送 URL 请求给转发服务器 (BrokerServer)。
         步骤 202, BrokerServer 通过页面转换服务器 (SkeetServer) 将所述 URL 请求发 送给内核引擎服务器 (ChromeServer)。
         可以看出, 在步骤 202 中, BrokerServer 和 SkeetServer 实质上是将 URL 请求透 传给 ChromeServer。
         步骤 203, ChromeServer 抓取所述 URL 请求对应的原始网页, 通过解析所述原始网 页获取并存储所述原始网页中图片标签对应的图片信息至数据库 (DCache), 以及执行所述 原始网页包含的 JS。
         步骤 204, ChromeServer 发送解析后的网页至 SkeetServer。
         步骤 205, SkeetServer 判断发送所述 URL 请求的手机是否支持所述解析后的网 页, 如果是, 执行步骤 206 ; 否则, 执行步骤 207。
         步骤 206, 将所述解析后的网页发送至 BrokerServer。之后执行步骤 208。
         步 骤 207, 将 所 述 解 析 后 的 网 页 转 换 为 所 述 手 机 支 持 的 网 页, 并发送至 BrokerServer。
         之所以执行步骤 205 至步骤 207, 主要是因为目前大多数手机仅支持 wap2.0 网页, 并不支持互联网站上的 www 网页, 基于此, 如果本实施例中发送了 URL 请求的手机不支持 www 网页, 则在 SkeetServer 接收到 www 网页时, 就需要将该 www 网页转换为 wap2.0 网页, 之后发送至 BrokerServer。 当然, 如果本实施例中发送了 URL 请求的手机具有强大的功能, 即可支持 wap2.0 网页, 又支持 www 网页, 则在 SkeetServer 接收到 www 网页时, 就不需要执 行转换操作, 直接将该 www 网页发送至 BrokerServer 即可。可以看出, 步骤 205 至步骤 207 的执行主要是依赖于手机的功能。
         步骤 208, BrokerServer 接收 SkeetServer 发送的网页, 从 DCache 中读取图片信 息, 插入至该网页上对应该图片信息的图片标签处, 得到插入后的网页 ( 记为网页 1), 之后 将该网页 1 发送至 RenderServer。
         步骤 209, RenderServer 将接收的网页 1 解析成 DOM 树, 并将接收的网页 1 发送至 内核 (webcore), 由 webcore 对网页 1 进行渲染, 形成渲染树。
         步骤 210, RenderServer 依据 DOM 树将所述渲染树上渲染对象对应的数据信息转 换为二进制流。
         本步骤 210 中的具体操作可参见图 3 所示的流程 :
         参见图 3, 图 3 为本发明实施例提供的步骤 210 的流程图。如图 3 所示, 该流程可 包括以下步骤 :
         步骤 301, 从渲染树上获取发送了 URL 请求的手机所需要的 Render 对象。
         本实施例中, 移动终端需要的渲染对象为 : RenderText 对象、 RenderImage 对象、 控件 Render 对象、 以及与发送了 URL 请求的手机逻辑相关的 Render 对象 ; 或者, 为所述渲染树上所有的 Render 对象。
         其中, 与手机逻辑相关的 Render 对象具体可为 RenderView 对象 ( 用于存放文档 页面大小、 HTML Head 标签元素等 ), RenderBlock 对象 (Form 表单元素 ) 等。
         通过获取手机所需要的 Render 对象, 能够过滤掉其他一些不必要的 Render 对象, 这可在后续发送 Render 对象时节省流量。
         步骤 302, 针对获取的每一 Render 对象, 获取该 Render 对象的渲染信息, 以及在所 述 DOM 树上获取该 Render 对象对应的 DOM 元素和该 DOM 元素的属性。
         通常, Render 对象至少对应一个 DOM 元素。
         其中, Render 对象的渲染信息主要为手机在步骤 213 执行绘制操作时用到的样式 信息, 具体可包括 : Render 对象在屏幕上的坐标值和宽高, 颜色等。
         DOM 元素和该 DOM 元素的属性具体定义可与现有技术中的定义类似, 这里不再赘 述。
         本实施例中, 获取 Render 对象的渲染信息, 以及在所述 DOM 树上获取该 Render 对 象对应的 DOM 元素和该 DOM 元素的属性, 主要目的是为了步骤 213 的绘制操作。以 Render 对象的渲染信息包含 Render 对象在屏幕上的坐标值、 宽高和颜色, DOM 元素的标签是 标 签, 属性为 href = http://www.qq.com 为例, 则当手机在步骤 213 得到该渲染信息、 DOM 元 素和该 DOM 元素的属性时, 由于有位置, 颜色和文本等信息就知道该怎么进行绘制, 而且也 知道点击该元素时进行的响应操作, 因为有其标签属性为 , 同时也知道该跳转到什么网 页, 因为有属性 href =” http://www.qq.com” 。 步骤 303, 将获取的渲染信息、 DOM 元素和该 DOM 元素的属性分别进行二进制编码, 得到二进制流。
         本步骤 303 可按照图 4 所示的 Tag-Length-Value(TLV) 编码格式分别对渲染信 息、 DOM 元素和该 DOM 元素的属性进行二进制编码。在图 4 中, Tag 是指标志位使用可变长 度变量, 本身占用 1 到 2 个字节。如果待编码的信息 ( 比如渲染信息、 DOM 元素或者该 DOM 元素的属性 ) 的值是从 0 到 254 的, 则使用单个字节 ; 如果值为 255 或者以上的, 则第一个 字节为 0xFF, 第二个字节为 ( 该待编码的信息的值 -255)。Length 是指 Value 字段中承载 的二进制流的长度。 Value 承载了二进制流, 长度由 Length 字段决定, 该二进制流本身可以 为数字或者字符串。 通过二进制编码, 能够大大减少服务器端和手机之间的流量传输压力。
         至此, 完成了图 3 所示的流程。
         步骤 211, 在该得到的二进制流的前部或者后部增加对应该二进制流的文件标识 和版本号, 以供识别该二进制流, 并通过 SkeetServer 发送至 BrokerServer。
         其中, 文件标识和版本号各占一个字段。
         步骤 212, BrokerServer 将接收的二进制流进行 WUP 协议组包和压缩, 下发给发送 了 URL 请求的手机。
         步骤 213, 所述发送了 URL 请求的手机通过解析 WUP 协议组包得到二进制流, 依据 该二进制流执行绘制操作, 以实现网页浏览。
         本步骤 213 的绘制操作可与现有技术类似, 这里不再赘述。
         至此, 完成了图 2 所示的流程。
         以上对本发明实施例提供的方法进行了描述, 下面对本发明实施例提供的设备和
         系统进行描述。
         参见图 5, 图 5 为本发明实施例提供的设备基本结构图。设备设置在服务器端, 其 中, 所述服务器端包含 webcore。如图 5 所示, 该设备包括 :
         处理单元 501, 用于接收页面, 将所述页面解析成 DOM 树, 并发送所述页面至所述 内核, 由所述内核对所述页面进行渲染, 形成渲染树 ;
         转换单元 502, 用于依据所述 DOM 树将所述渲染树上渲染对象对应的数据信息转 换为二进制流, 并下发给移动终端, 由所述移动终端依据接收的二进制流执行绘制操作, 以 实现网页浏览。
         以上对本发明实施例提供的设备进行了简单描述, 下面对该设备进行详细描述。
         参见图 6, 图 6 为本发明实施例提供的设备详细结构图。如图 6 所示, 该设备可包 括: 处理单元 601 和转换单元 602, 其中, 处理单元 601 和转换单元 602 具有的功能分别与 处理单元 501 和转换单元 502 具有的功能类似, 这里不再详述。
         优选地, 如图 6 所示, 转换单元 602 可包括 :
         第 一 获 取 子 单 元 6021, 用于从所述渲染树上获取所述移动终端需要的渲 染 Render 对 象 ; 本 实 施 例 中, 所述移动终端需要的渲染对象为 : RenderText 对 象、 RenderImage 对象、 至少一个控件 Render 对象、 以及与所述移动终端逻辑相关的 Render 对 象; 或者, 为所述渲染树上所有的 Render 对象。 第二获取子单元 6022, 用于针对获取的每一 Render 对象, 获取该 Render 对象的渲 染信息, 以及在所述 DOM 树上获取该 Render 对象对应的 DOM 元素和该 DOM 元素的属性 ;
         编码子单元 6023, 用于将获取的渲染信息、 DOM 元素和该 DOM 元素的属性进行二进 制编码, 得到二进制流 ;
         转发子单元 6024, 用于将所述二进制流进行 WUP 协议组包和压缩, 下发给移动终 端, 以供移动终端通过解析 WUP 协议组包得到二进制流, 依据该二进制流执行绘制操作。
         本发明实施例还提供了由服务器端实现网页渲染的系统, 其中, 该系统可包括 webcore、 移动终端比如手机和如图 5 或图 6 所述的设备。
         本实施例中, 所述系统还包括 : ChromeServer、 DCache 和 BrokerServer ;
         其中, 所述 ChromeServer, 用于抓取所述移动终端发送的 URL 请求对应的原始网 页, 通过解析所述原始网页获取并存储所述原始网页中图片标签对应的图片信息至所述数 据库, 以及执行所述原始网页包含的 JS, 并向 BrokerServer 发送解析后的网页 ;
         所述 BrokerServer, 用于接接收到网页后, 从所述数据库读取图片信息, 并插入至 该网页中对应该图片信息的图片标签处, 得到所述页面, 之后将所述页面发送至所述设备 中的处理单元。
         优选地, 所述服务器端还包括连接在所述 ChromeServer 和所述 BrokerServer 之 间的 SkeetServer ;
         所述 SkeetServer 接收所述 ChromeServer 发送的解析后的网页, 并判断所述移动 终端是否支持所述网页, 如果否, 则将所述解析后的网页转换为所述移动终端支持的网页, 并转发至所述 BrokerServer, 如果是, 将所述解析后的网页转发至所述 BrokerServer。
         由以上技术方案可以看出, 本发明中, 通过在服务器端增加渲染服务器, 由该渲染 服务器完成网页的渲染, 并将渲染的结果返回给移动终端比如手机上的浏览器, 由手机浏
         览器根据渲染结果执行绘制操作。 这显然能够避免由手机浏览器对网页标签进行解析渲染 所带来的技术问题, 降低手机浏览器的 CPU、 内存和网络流量的压力。
         以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明的精 神和原则之内, 所做的任何修改、 等同替换、 改进等, 均应包含在本发明保护的范围之内。

    关 键  词:
    服务器端 实现 网页 渲染 方法 设备 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:由服务器端实现网页渲染的方法、设备和系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4215541.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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