一种多线程异步渲染系统及方法技术方案

技术编号:9991082 阅读:106 留言:0更新日期:2014-05-02 04:41
本发明专利技术提出一种多线程异步渲染系统及方法,其中系统包括:渲染引擎,用于解析页面实例文件,将页面实例文件划分为多个页面部分,针对每个页面部分生成一个模拟标记,将所述模拟标记发送至浏览器设备;并针对每个页面部分设定一个主进程锁,多线程异步渲染所述每个页面部分;当一个页面部分渲染完毕后,释放该页面部分对应的主线程锁,将渲染结果发送至浏览器设备;浏览器设备,用于接收所述模拟标记;当接收到渲染结果时,查询该渲染结果所对应的模拟标记,采用该渲染结果替换查找到的模拟标记,显示该渲染结果。本发明专利技术能够节约渲染时间。

【技术实现步骤摘要】
一种多线程异步渲染系统及方法
本专利技术涉及计算机
,尤其涉及一种多线程异步渲染系统及方法。
技术介绍
描述网页页面的文件包括页面实例文件和页面描述文件。其中,页面实例文件是可扩展标记语言(XML,ExtensibleMarkupLanguage)配置文件,用于描述页面的区域的组成形成;一个页面可对应多个布局,一个布局对应多个模块。页面描述文件用于描述页面的组成部分,包括头部(header)部分、主体内容区域(body)部分和底部(foot)部分。由于浏览器无法直接识别页面实例文件和页面描述文件,因此需要渲染服务器首先将页面实例文件转换为浏览器能够识别的文件形式,例如超文本标记语言(HTML,HyperTextMark-upLanguage)文件,这一转换的过程称为渲染;之后,渲染服务器将渲染完成的HTML文件发送至浏览器,由浏览器读取HTML文件并显示页面。目前渲染设备一般采用Velocity模板渲染引擎。Velocity模板渲染引擎采用单线程模式实现渲染,即按照布局的顺序、依次对每个布局进行渲染,这种渲染方式耗时过长。
技术实现思路
本专利技术提供了一种多线程异步渲染系统,能够多线程异步渲染页面实例文件,节约渲染时间。本专利技术还提供了一种多线程异步渲染方法,能够多线程异步渲染页面实例文件,节约渲染时间。本专利技术的技术方案是这样实现的:一种多线程异步渲染系统,包括:渲染引擎,用于解析页面实例文件,将页面实例文件划分为多个页面部分,针对每个页面部分生成一个模拟标记,将所述模拟标记发送至浏览器设备;并针对每个页面部分设定一个主进程锁,多线程异步渲染所述每个页面部分;当一个页面部分渲染完毕后,释放该页面部分对应的主线程锁,将渲染结果发送至浏览器设备;浏览器设备,用于接收所述模拟标记;当接收到渲染结果时,查询该渲染结果所对应的模拟标记,采用该渲染结果替换查找到的模拟标记,显示该渲染结果。上述系统中,渲染引擎还可以用于,加载页面整体结构,将加载结果发送至浏览器设备;浏览器设备还可以用于,显示所述加载结果。渲染引擎划分的每个页面部分可以为所述页面实例文件中的一个布局。渲染引擎针对每个布局生成的模拟标记中可以包含该布局的标识;并且,渲染引擎渲染每个布局时,该布局的渲染结果中可以包含该布局的标识;浏览器设备查询渲染结果所对应的模拟标记的方式可以为:当渲染结果中包含的布局标识与模拟标记中包含的布局标识相同时,查询到该渲染结果与该模拟标记对应。一种多线程异步渲染方法,包括:解析页面实例文件,将页面实例文件划分为多个页面部分,针对每个页面部分生成一个模拟标记,将所述模拟标记发送至浏览器设备;针对每个页面部分设定一个主进程锁,多线程异步渲染所述每个页面部分;当一个页面部分渲染完毕后,释放该页面部分对应的主线程锁,将渲染结果发送至浏览器设备;浏览器设备接收到渲染结果时,查询该渲染结果所对应的模拟标记,采用该渲染结果替换查找到的模拟标记,显示该渲染结果。上述方法中,解析页面实例文件之前可以进一步包括:加载页面整体结构,将加载结果发送至浏览器设备;浏览器设备显示所述加载结果。页面实例文件划分为多个页面部分的方式可以为:将页面实例文件中的每一个布局划分为一个页面部分。针对每个布局生成的模拟标记中可以包含该布局的标识;每个布局的渲染结果中可以包含该布局的标识;查询渲染结果所对应的模拟标记的方式可以为:当渲染结果中包含的布局标识与模拟标记中包含的布局标识相同时,查询到该渲染结果与该模拟标记对应。可见,本专利技术提出的多线程异步渲染系统和方法,能够将页面实例文件划分为多个部分,对每个部分分别进行渲染及显示,因此能够节约渲染时间。附图说明图1为本专利技术提出的多线程异步渲染系统的结构示意图;图2为本专利技术实施例一的实现流程图;图3A为渲染显示效果示意图一;图3B为渲染显示效果示意图二。具体实施方式本专利技术能够实现“模块化”渲染,将页面中的各个区域多线程异步地进行渲染,并不定时地分区呈现到浏览器,最大限度地释放渲染引擎的渲染处理能力以及提升与浏览器的“交互”速度,颠覆了以往的页面渲染技术模式。如图1为本专利技术提出的多线程异步渲染系统的结构示意图,包括:渲染引擎101,用于解析页面实例文件,将页面实例文件划分为多个页面部分,针对每个页面部分生成一个模拟标记,将所述模拟标记发送至浏览器设备102;并针对每个页面部分设定一个主进程锁,多线程异步渲染所述每个页面部分;当一个页面部分渲染完毕后,释放该页面部分对应的主线程锁,将渲染结果发送至浏览器设备102;浏览器设备102,用于接收所述模拟标记;当接收到渲染结果时,查询该渲染结果所对应的模拟标记,采用该渲染结果替换查找到的模拟标记,显示该渲染结果。上述渲染引擎101还可以用于,加载页面整体结构(包括页面左边与头部的菜单栏),将加载结果发送至浏览器设备102;浏览器设备102还可以用于,显示所述加载结果。上述系统中,渲染引擎101可以按照布局划分页面实例文件,即,划分的每个页面部分可以为所述页面实例文件中的一个布局。相应地,渲染引擎101针对每个布局生成的模拟标记中可以包含该布局的标识;并且,渲染引擎101渲染每个布局时,该布局的渲染结果中也包含该布局的标识;这样,浏览器设备102查询渲染结果所对应的模拟标记的方式可以为:当渲染结果中包含的布局标识与模拟标记中包含的布局标识相同时,查询到该渲染结果与该模拟标记对应。本专利技术需要结合后端ava业务处理与前端javascript脚本定位布局技术。后端java业务处理技术包括:利用HTTP协议长连接技术(需要将浏览器中的请求头信息中的“connection”属性值设置为“keep-alive”),在渲染开始之前设置N个主线程锁,上述每个页面部分对应一个主线程锁;之后对每个页面部分分别渲染,一个页面部分渲染完成之后,将渲染结果立即输出至浏览器设备,并释放该页面部分所对应的主线程锁;当所有页面部分渲染完成之后,也就是所有的主线程锁被释放之后,断开渲染引擎与浏览器设备之间的HTTP连接。前端javascript脚本定位布局技术包括2部分内容:第一部分为模拟定位,即将页面实例文件中的布局顺序模拟输出到页面中。例如,为各个布局生成对应的模拟标记,即span标签,在span标签的内容区不包含内容,只在节点中包含布局的标识,因此不会影响页面的显示。之后,渲染引擎将生成的模拟标记发送至浏览器设备。例如,对于以下的页面实例文件,该页面实例文件中包括2个布局,其标识分别为“134”和“135”。对于上述页面实例文件,生成2个对应的模拟标记,即:<spaninitLayoutID=“134”/><spaninitLayoutID=“135”/>第二部分为前端定位,即浏览器设备收到渲染引擎发送的一个布局的渲染结果(HTML代码)时,如果该渲染结果中包含的布局标识与某个模拟标记中包含的布局标识相同,则说明该模拟标记与该渲染结果对应,则采用该渲染结果替换该模拟标记,并显示该渲染结果。这样杜绝了“空页面”的产生,减少了用户等待时间,从本质上优化了原有的渲染模式,并且能够保证各布局的显示位置正确。以下举具体的实施例详细介绍。实施例一:如图2为本专利技术实施例一的实现流程图,包括:第本文档来自技高网...
一种多线程异步渲染系统及方法

【技术保护点】

【技术特征摘要】
1.一种多线程异步渲染系统,其特征在于,所述系统包括:渲染引擎,用于解析页面实例文件,将页面实例文件划分为多个页面部分,针对每个页面部分生成一个模拟标记,将所述模拟标记发送至浏览器设备;并针对每个页面部分设定一个主进程锁,多线程异步渲染所述每个页面部分;当一个页面部分渲染完毕后,释放该页面部分对应的主线程锁,将该页面部分的渲染结果发送至浏览器设备;浏览器设备,用于接收所述模拟标记;当接收到渲染结果时,查询该渲染结果所对应的模拟标记,采用该渲染结果替换查找到的模拟标记,显示该渲染结果。2.根据权利要求1所述的系统,其特征在于,所述渲染引擎还用于,加载页面整体结构,将加载结果发送至浏览器设备;所述浏览器设备还用于,显示所述加载结果。3.根据权利要求1或2所述的系统,其特征在于,所述渲染引擎划分的每个页面部分为所述页面实例文件中的一个布局。4.根据权利要求3所述的系统,其特征在于,所述渲染引擎针对每个布局生成的模拟标记中包含该布局的标识;并且,所述渲染引擎渲染每个布局时,该布局的渲染结果中包含该布局的标识;所述浏览器设备查询渲染结果所对应的模拟标记的方式为:当渲染结果中包含的布局标识与模拟标记中包含的布局标识相同时,查询到该...

【专利技术属性】
技术研发人员:曾洋
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1