一种基于嵌入式浏览器CSS引擎并行化方法技术

技术编号:12277376 阅读:60 留言:0更新日期:2015-11-05 03:22
本发明专利技术提供一种基于嵌入式浏览器CSS引擎并行化的处理方法,所述方法包含:步骤101:启动主线程进行页面解析;步骤102)新建线程下载当页面解析过程中收到的外部样式表或图片资源;步骤103)再次新建线程,采用再次新建的线程解析收到的CSS样式,且一种CSS样式采用一个新建的线程进行解析;步骤103)经过一段时间,主线程完成页面解析,其余新建线程完成样式解析;步骤104)开启选择器匹配线程,将页面解析和样式解析的输出结果输入选择器匹配线程,完成DOM节点与选择器的匹配,最终生成渲染树。本发明专利技术的方法对CSS引擎资源获取、样式解析和选择器匹配三个方面分别进行并行处理。从而减少了浏览器页面解析过程中的等待时间,加快了网页的加载速度。

【技术实现步骤摘要】

本专利技术涉及嵌入式浏览器的层叠样式表CSS引擎处理的
,特别涉及一种CSS引擎并行化的处理方法。
技术介绍
层叠样式表(Cascading Style Sheets,简写CSS),是由W3C定义和维护的标准,一种用来为结构化文档如HTML文档或XML应用添加样式(字体、间距和颜色等)的计算机;五古P口口 ο相对于传统HTML的表现而言,CSS能够对网页中对象的位置排版进行像素级的精确控制。CSS规范的广泛使用和嵌入式浏览器的广泛使用,使CSS引擎成为嵌入式浏览器中必不可少的部分。CSS引擎完成的功能是将网页中的CSS样式描述准确无误地解析出来,并对每个DOM节点(文档对象模型,DOM树是由结构文档生成的树结构,DOM节点是DOM树中的节点)进行样式匹配、样式运用,最终使样式效果得以实现。现有的CSS引擎技术对样式表的处理是线程阻塞式的,解析CSS样式时页面解析受到影响;另外在选择符匹配过程中,现有CSS引擎并没有对选择符分类和DOM节点进行分组匹配,匹配的效率影响了页面的加载。本专利技术通过采用新开线程的方式达到页面解析和样式解析并行执行,选择符在不同的线程分别匹配,加快了浏览器的处理速度。
技术实现思路
本专利技术的目的在于,为克服上述问题,本专利技术通过CSS引擎的并行处理,加快网页的加载速度,带来更好的用户体验,即本专利技术提供一种基于嵌入式浏览器CSS引擎并行化的处理方法。为了达到上述目的,本专利技术提供一种基于嵌入式浏览器CSS引擎并行化的处理方法,所述方法包含:步骤101:启动主线程进行页面解析;步骤102)新建线程下载当页面解析过程中收到的外部样式表或图片资源;步骤103)再次新建线程,采用再次新建的线程解析收到的CSS样式,且一种CSS样式采用一个新建的线程进行解析;步骤103)经过一段时间,主线程完成页面解析,其余新建线程完成样式解析;步骤104)开启选择器匹配线程,将页面解析和样式解析的输出结果输入选择器匹配线程,完成DOM节点与选择器的匹配,最终生成渲染树。可选的,上述的页面解析是对采用结构化文档语言编排的页面的进行的解析;其中,所述结构化文档语言包含:HTML、XML或XHTML。可选的,上述步骤103)进一步包含:步骤103-1)主线程为收到的每个CSS样式赋予一个唯一的ID编号,针对每个CSS样式建立新线程;步骤103-2)采用新线程解析每个携带了编号的CSS样式;步骤103-3)样式解析完成,并将解析后的CSS样式根据ID编号进行排序,其中所述的ID编号用于:根据ID编号恢复各解析后的CSS样式在页面中的位置。可选的,上述步骤102)和步骤103)之间还包含:扫描并记录所述外部样式表中选择符种类的数量。可选的,上述步骤104)进一步包含:步骤104-1)开启选择器匹配线程;步骤104-2)判断记录的选择符种类的数量值,当该数量值大于3时进入步骤104-3);否则进入步骤104-4);步骤104-3)根据选择符种类调用4种线程中的一种进行DOM节点与选择符匹配,最终生成渲染树;其中,所述的4种线程为:ID匹配线程,标签匹配线程,类匹配线程和其它线程;所述的ID匹配线程根据ID选择符进行匹配,所述标签匹配线程根据标签进行匹配,所述类匹配线程根据类名匹配,所述其它线程对剩余的选择符种类进行匹配;步骤104-4)将页面解析输出的DOM节点随机分组,然后为每个组单独分配一个线程,采用分配的线程将DOM节点与选择符匹配,最终生成渲染树。采用上述的技术方案后,本专利技术具有以下优点:1、对于外部CSS样式表较多的网页,通过并行加载,减少网页延迟带来的加载速度慢;2、通过多开线程,可以减少处理延时;3、加快了浏览器的响应速度,带来更好的用户体验效果;【附图说明】图1为本专利技术的一种基于嵌入式浏览器CSS引擎并行化的处理方法的流程图;图2为CSS样式解析的并行执行方式;图3为选择器匹配DOM节点的过程图。【具体实施方式】为了使本专利技术的目的、实现方法和优点更加清楚明白,下面结合具体实施例对本专利技术作进一步的描述。本专利技术的一种基于嵌入式浏览器CSS引擎并行化的处理方法的流程如图1所示,具体包括如下步骤:1、HTML页面解析过程中遇CSS样式表;2、页面解析部分新开线程将CSS样式表加载下来,此时页面解析仍在执行;3、页面解析过程中遇到CSS样式1,调用CSS解析器解析;4、页面继续解析,当遇CSS样式2时,新开线程解析CSS样式2 ;5、当样式解析完成后,根据ID号恢复其顺序;6、页面解析完成后,CSS选择器开始将CSS样式表中的样式规则匹配到DOM节点;7、匹配完成后输出一棵标注了 DOM节点信息的渲染树,CSS引擎的工作完成。上述技术方案中CSS选择器匹配部分是根据选择符的类型或DOM节点分不同的线程进行匹配的:当选择符类型较多时,不同的选择符利用不同的线程处理,当选择符类型单一时,将DOM节点随机分组,在多核环境下通过work-stealing算法利用不同的核心并行匹配。总之,本专利技术的技术方案为:页面解析部分属于浏览器的主线程,它负责为CSS样式解析新建线程,管理所有的CSS样式表;从外部看,CSS引擎的输入是文档对象模型(D0M树)和一个CSS样式集,经过CSS引擎的处理,输出标注了 CSS样式的一棵渲染树;css引擎的功能包括三部分:获取外部CSS样式表及图片资源、CSS样式解当前第1页1 2 本文档来自技高网...

【技术保护点】
一种基于嵌入式浏览器CSS引擎并行化的处理方法,所述方法包含:步骤101:启动主线程进行页面解析;步骤102)新建线程下载当页面解析过程中收到的外部样式表或图片资源;步骤103)再次新建线程,采用再次新建的线程解析收到的CSS样式,且一种CSS样式采用一个新建的线程进行解析;步骤103)经过一段时间,主线程完成页面解析,其余新建线程完成样式解析;步骤104)开启选择器匹配线程,将页面解析和样式解析的输出结果输入选择器匹配线程,完成DOM节点与选择器的匹配,最终生成渲染树。

【技术特征摘要】

【专利技术属性】
技术研发人员:郭志川刘秀秀胡琳琳
申请(专利权)人:中国科学院声学研究所北京中科智网科技有限公司
类型:发明
国别省市:北京;11

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

1