CN103473347B - 一种基于网页相似度的浏览器渲染优化方法 - Google Patents
一种基于网页相似度的浏览器渲染优化方法 Download PDFInfo
- Publication number
- CN103473347B CN103473347B CN201310439055.8A CN201310439055A CN103473347B CN 103473347 B CN103473347 B CN 103473347B CN 201310439055 A CN201310439055 A CN 201310439055A CN 103473347 B CN103473347 B CN 103473347B
- Authority
- CN
- China
- Prior art keywords
- tree
- node
- css style
- pattern
- browser
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
一种基于网页相似度的浏览器渲染优化方法,在浏览器处理网页的过程中,缓存对网页处理过的CSS样式,所有相同域名下面的网页共享并且共同维护着一棵CSS样式树;在下次访问相同域名下网页的时候,重用缓存的结果中相同的CSS样式部分,把新出现的CSS样式添加到该CSS样式树中作为缓存。利用本发明提供的技术方案,可以减少浏览器在加载网页时候的冗余计算,提高了网页的加载速度,增强了浏览器的性能。
Description
技术领域
本发明提供一种浏览器渲染优化的方法,具体涉及一种基于网页之间相似度来进行缓存和重用浏览器中间计算结果的方法。
背景技术
随着移动平台和HTML5的发展,浏览器的功能越来越强大,但是浏览器的性能一直不够令人满意。影响浏览器的性能主要有两个因素,一个是网络带宽,一个是浏览器在本地的计算和处理速度。网络带宽影响着网络往返时间,较长的网络往返时间会导致较长的资源加载时间。浏览器在本地的计算和处理过程主要是对网页进行解析,计算CSS(层叠样式表)样式和布局,需要大量的计算密集型的操作。为了提高浏览器的性能,很多研究工作对浏览器的性能进行优化,包括对浏览器缓存机制进行优化,对计算密集型操作并行化,对网页内容预取,资源的推测式加载,以及基于云端对浏览器进行优化。
在浏览器的处理过程中,存在着很多的冗余计算。一方面,很多网页经常被访问,虽然现在的浏览器中有对网页资源的缓存,但是每次访问相同网页的时候,CSS样式和布局都会重新计算。另外一方面,很多网站下的不同网页都有着很强的相似性,包括使用了相同的样式表和类似的布局结构,导致浏览器在加载这些网页的时候存在着很多冗余计算。
这些冗余计算占据了浏览器渲染计算中的很大一部分比重,但是之前的研究工作没有考虑到浏览器处理过程中的冗余计算,也没有考虑到网页浏览的相似性。如果能减少浏览器加载网页过程中的冗余计算,那么对于浏览器的性能会有很大的提升。
发明内容
为了便于说明,本文约定:“DOM”表示HTML的文档对象模型;“CSS”表示层叠样式表,用来表示网页元素的样式;“ID”表示网页元素标签中的ID属性;“Class”表示网页元素标签中的Class属性;“Tag”表示网页元素标签中的标签名称;三元组用来表示“ID”,“Class”和“Tag”这三个属性。
本发明的目的是提供一种基于网页相似度的浏览器渲染优化方法,用以解决浏览器在处理网页中存在的冗余计算。
本发明所述的技术方案如下:
一种基于网页相似度的浏览器渲染优化方法,其特征是,在浏览器处理网页的过程中,缓存对网页处理过的CSS样式,所有相同域名下面的网页共享并且共同维护着一棵CSS样式树;在下次访问相同域名下网页的时候,重用缓存的结果中相同的CSS样式部分,把新出现的CSS样式添加到该CSS样式树中作为缓存。
所述的浏览器渲染优化方法,其特征是,在缓存CSS样式树时,执行如下操作:
A1.建立一棵与DOM树结构相似的CSS样式树,用来缓存每个DOM节点对应的CSS样式;每个CSS样式树中的节点用该节点的三元组ID,Class,Tag来唯一标记;CSS样式树的根节点不记录样式,用来记录该样式树缓存的网页域名;
A2.将DOM树根节点的三元组ID,Class,Tag以及CSS样式缓存到CSS样式树根节点的孩子节点上;
A3.其余非根节点按照DOM树中节点的父子关系,在CSS样式树中建立节点并将其三元组ID,Class,Tag和CSS样式缓存到对应节点。
所述的浏览器渲染优化方法,其特征是,在浏览器需要计算网页DOM树节点样式时,执行如下操作:
B1.判断是否有缓存相同域名的CSS样式树,如果有则执行步骤B2;否则,浏览器正常渲染网页并且缓存CSS样式树,结束本流程;
B2.在计算DOM树根节点Rd样式的时候,判断根节点是否跟对应的CSS样式树根节点Rc的第一级子节点有相同的ID,Class,Tag标记;如果有,则说明Rd在样式树中有已经计算好的相同的样式,则将对应的样式直接赋给Rd;否则,说明从Rd的样式开始就没有相同的,则计算Rd的样式,并在CSS样式树的根节点下建立子节点Rd’;将Rd的ID,Class,Tag作为标记,以及将计算好的Rd的样式缓存到Rd’;
B3.在计算DOM树的非根节点Nd样式的时候,找到Nd的父节点Ndp对应的CSS样式树中的节点Cdp;遍历Cdp的孩子节点,判断是否存在节点Cdpc与Nd的ID,Class,Tag相同;如果存在,则将Cdpc的样式赋给Nd;否则,计算Nd的样式并且在Cdp下建立节点Nd‘,将Nd的ID,Class,Tag作为标记,以及将计算好的Nd的样式缓存到Nd‘。
所述的浏览器渲染优化方法,其特征是,所述网页域名是大小写无关的,如www.baidu.com和WWW.BAIDU.COM对应于相同的域名。
本发明所述的方法可以实现为一种浏览器插件,所述浏览器插件接管浏览器对网页CSS样式的处理过程。
一种浏览器,其特征是,所述浏览器上面所述的方法对网页CSS样式进行处理。
本发明的有益效果:利用本发明提供的技术方案,可以减少浏览器在加载网页时候的冗余计算,提高了网页的加载速度,增强了浏览器的性能。
附图说明
图1是本发明的缓存CSS样式的流程。
图2是本发明的重用CSS样式的流程。
图3是本发明实施例1提供的缓存CSS样式的流程图。
图4是本发明实施例2提供的重用CSS样式的流程图。
具体实施方式
本发明的具体实施方式如下:
A.在缓存CSS样式树时,执行如下操作(如图1所示):
A1.建立一棵与DOM树结构相似的CSS样式树,用来缓存每个DOM节点对应的CSS样式;每个CSS样式树中的节点用三元组ID,Class,Tag来唯一标记;CSS样式树的根节点不记录样式,用来记录该样式树缓存的网页域名;
A2.将DOM树根节点的三元组ID,Class,Tag以及CSS样式缓存到CSS样式树根节点的孩子节点上;
A3.其余非根节点按照DOM树中节点的父子关系,在CSS样式树中建立节点并将三元组ID,Class,Tag和CSS样式缓存到对应节点。
B.在浏览器需要计算网页DOM树节点样式时,执行如下操作(如图2所示):
B1.判断是否有缓存相同域名的CSS样式树,如果有,则执行步骤B2;否则,浏览器正常渲染网页并且缓存CSS样式树,结束本流程;
B2.在计算DOM树根节点Rd样式的时候,判断根节点是否跟对应的CSS样式树根节点Rc的孩子节点有相同的三元组ID,Class,Tag标记;如果有,则说明Rd在样式树中有已经计算好的相同的样式,则将对应的样式直接赋给Rd;否则,说明从Rd的样式开始就没有相同的,则计算Rd的样式,并在CSS样式树的根节点下建立子节点Rd’;将Rd的ID,Class,Tag作为标记,以及将计算好的Rd的样式缓存到Rd’;
B3.在计算DOM树的非根节点Nd样式的时候,找到Nd的父节点Ndp对应的CSS样式树中的节点Cdp;遍历Cdp的孩子节点,判断是否存在节点Cdpc与Nd的ID,Class,Tag相同;如果存在则将Cdpc的样式赋给Nd;否则,计算Nd的样式并且在Cdp下建立节点Nd‘,将Nd的ID,Class,Tag作为标记,以及将计算好的Nd的样式缓存到Nd‘。
下面通过实例对本发明做进一步说明。
实施例1:缓存CSS样式树
假定在浏览器中打开一个新闻网页www.mywebsite.com/news001,而之前浏览器从来没有访问过这个域名下面的网页,那么浏览器中就找不到缓存的CSS样式树。浏览器会正常计算新打开网页DOM节点的CSS样式,并且创建CSS样式树。www.mywebsite.com/news001网页根节点是<html>,<html>节点下面有两个节点<head>和<body>,<body>下面有节点<p>。
缓存CSS样式树的流程如图3所示,包括如下步骤:
1)建立CSS样式树的根节点,根节点不缓存任何样式,根节点的属性设置为www.mywebsite.com,即该域名下的网页都共享此样式树;
2)计算DOM树根节点<html>的CSS样式,并在CSS样式树根节点下建立节点Chtml,将<html>的样式以及其三元组ID,Class,Tag的值赋给Chtml;网页元素的三元组ID,Class,Tag的值可以由DOM模型获取;
3)计算DOM树节点<head>的CSS样式,并在CSS样式树节点Chtml下建立节点Chead,将<head>的样式以及其ID,Class,Tag值赋给Chead;
4)计算DOM树节点<body>的CSS样式,并在CSS样式树节点Chtml下建立节点Cbody,将<body>的样式以及其ID,Class,Tag值赋给Cbody;
5)计算DOM树节点<p>的CSS样式,并在CSS样式树节点Cbody下建立节点Cp,将<p>的CSS样式以及其ID,Class,Tag值赋给Cp。
通过上述操作,建立了网站www.mywebsite.com的CSS样式树并将之缓存起来。
实施例2:重用CSS样式树
本实施例的目的在于重用实施例1所缓存的CSS样式树。
假定在浏览器中打开新闻网页www.mywebsite.com/news001后又打开新闻网页www.mywebsite.com/news002,那么浏览器在计算网页元素的CSS样式的时候就会重用对应的样式树。www.mywebsite.com/news002网页根节点是<html>,<html>节点下面有两个节点<head>和<body>,<body>下面有节点<p>和节点<img>。
重用CSS样式树的流程如图4所示,包括如下步骤:
(1)判断是否有相同域名的样式树,找到之前缓存的www.mywebsite.com的CSS样式树;
(2)判断DOM树根节点<html>是否跟Croot的孩子节点有相同的三元组ID,Class,Tag,找到Chtml与<html>节点的三元组ID,Class,Tag相同,则将Chtml的CSS样式直接赋给<html>节点;
(3)判断DOM树节点<head>是否跟Chtml的孩子节点有相同的三元组ID,Class,Tag,找到Chead与<head>节点的三元组ID,Class,Tag相同,则将Chead的CSS样式直接赋给<head>节点;
(4)判断DOM树节点<body>是否跟Chtml的孩子节点有相同的三元组ID,Class,Tag,找到Cbody与<body>节点的三元组ID,Class,Tag相同,则将Cbody的CSS样式直接赋给<body>节点;
(5)判断DOM树节点<p>是否跟Cbody的孩子节点有相同的三元组ID,Class,Tag,找到Cp与<p>节点的三元组ID,Class,Tag相同,则将Cp的CSS样式直接赋给<p>节点;
(6)判断DOM树节点<img>是否跟Cbody的孩子节点有相同的三元组ID,Class,Tag,没找到孩子节点与<img>节点有相同的三元组ID,Class,Tag。因此计算<img>节点的CSS样式,并在CSS样式树节点Cbody下建立节点Cimg,将<img>的CSS样式以及其三元组ID,Class,Tag值赋给Cimg。
通过实施例2可以看到,在浏览器加载新网页的时候,重用了一大部分缓存过的CSS样式,减少了在加载网页时的冗余计算,提高了网页的加载速度,增强了浏览器的性能。
Claims (3)
1.一种基于网页相似度的浏览器渲染优化方法,其特征是,在浏览器处理网页的过程中,缓存对网页处理过的CSS样式,所有相同域名下面的网页共享并且共同维护着一棵CSS样式树;在下次访问相同域名下网页的时候,重用缓存的结果中相同的CSS样式部分,把新出现的CSS样式添加到该CSS样式树中作为缓存。
2.如权利要求1所述的浏览器渲染优化方法,其特征是,在缓存CSS样式树时,执行如下操作:
A1.建立一棵与DOM树结构相似的CSS样式树,用来缓存每个DOM节点对应的CSS样式;每个CSS样式树中的节点用该节点的三元组ID,Class,Tag来唯一标记;CSS样式树的根节点不记录样式,用来记录该样式树缓存的网页域名;
A2.将DOM树根节点的三元组ID,Class,Tag以及CSS样式缓存到CSS样式树根节点的孩子节点上;
A3.其余非根节点按照DOM树中节点的父子关系,在CSS样式树中建立节点并将其三元组ID,Class,Tag和CSS样式缓存到对应节点。
3.如权利要求1所述的浏览器渲染优化方法,其特征是,在浏览器需要计算网页DOM树节点样式时,执行如下操作:
B1.判断是否有缓存相同域名的CSS样式树,如果有则执行步骤B2;否则,浏览器正常渲染网页并且缓存CSS样式树,结束本流程;
B2.在计算DOM树根节点Rd样式的时候,判断根节点是否跟对应的CSS样式树根节点Rc的第一级子节点有相同的ID,Class,Tag标记;如果有,则说明Rd在样式树中有已经计算好的相同的样式,则将对应的样式直接赋给Rd;否则,说明从Rd的样式开始就没有相同的,则计算Rd的样式,并在CSS样式树的根节点下建立子节点Rd’;将Rd的ID,Class,Tag作为标记,以及将计算好的Rd的样式缓存到Rd’;
B3.在计算DOM树的非根节点Nd样式的时候,找到Nd的父节点Ndp对应的CSS样式树中的节点Cdp;遍历Cdp的孩子节点,判断是否存在节点Cdpc与Nd的ID,Class,Tag相同;如果存在,则将Cdpc的样式赋给Nd;否则,计算Nd的样式并且在Cdp下建立节点Nd‘,将Nd的ID,Class,Tag作为标记,以及将计算好的Nd的样式缓存到Nd‘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310439055.8A CN103473347B (zh) | 2013-09-24 | 2013-09-24 | 一种基于网页相似度的浏览器渲染优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310439055.8A CN103473347B (zh) | 2013-09-24 | 2013-09-24 | 一种基于网页相似度的浏览器渲染优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103473347A CN103473347A (zh) | 2013-12-25 |
CN103473347B true CN103473347B (zh) | 2017-01-11 |
Family
ID=49798195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310439055.8A Active CN103473347B (zh) | 2013-09-24 | 2013-09-24 | 一种基于网页相似度的浏览器渲染优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103473347B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335410B (zh) * | 2014-07-31 | 2017-06-16 | 优视科技有限公司 | 一种基于合成渲染加速的网页更新方法和装置 |
CN105335154B (zh) * | 2015-10-19 | 2019-09-20 | 沈文策 | 一种面向多终端的自适应网页布局方法及装置 |
CN106815235B (zh) * | 2015-11-27 | 2020-06-19 | 阿里巴巴(中国)有限公司 | 超级网页模板生成方法、装置及页面数据传输方法 |
CN105630902B (zh) * | 2015-12-21 | 2019-03-26 | 明博教育科技股份有限公司 | 一种渲染和增量更新网页的方法 |
CN106021421B (zh) * | 2016-05-13 | 2019-12-06 | 北京视博云科技有限公司 | 一种加速网页渲染的方法及装置 |
CN106202529A (zh) * | 2016-07-22 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种页面渲染方法及装置 |
CN106598574B (zh) * | 2016-11-25 | 2020-02-18 | 腾讯科技(深圳)有限公司 | 页面渲染的方法和装置 |
CN113760738A (zh) * | 2021-02-25 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 骨架屏生成方法、装置、电子设备和计算机存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963984A (zh) * | 2010-09-28 | 2011-02-02 | 北京伟库电子商务科技有限公司 | 页面局部区块渲染方法和系统 |
CN102065338A (zh) * | 2010-10-29 | 2011-05-18 | 广东星海数字家庭产业技术研究院有限公司 | 一种数字电视交互服务标签语言解析方法及系统 |
CN102541863A (zh) * | 2010-12-14 | 2012-07-04 | 联芯科技有限公司 | 一种应用于移动终端的网页压缩方法 |
CN102654885A (zh) * | 2012-04-28 | 2012-09-05 | 北京华胜天成科技股份有限公司 | 移动终端网页适配系统和方法 |
CN102915308A (zh) * | 2011-08-02 | 2013-02-06 | 阿里巴巴集团控股有限公司 | 一种页面渲染的方法及装置 |
CN103279518A (zh) * | 2013-05-27 | 2013-09-04 | 中山爱科数字科技股份有限公司 | 一种浏览器 |
-
2013
- 2013-09-24 CN CN201310439055.8A patent/CN103473347B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963984A (zh) * | 2010-09-28 | 2011-02-02 | 北京伟库电子商务科技有限公司 | 页面局部区块渲染方法和系统 |
CN102065338A (zh) * | 2010-10-29 | 2011-05-18 | 广东星海数字家庭产业技术研究院有限公司 | 一种数字电视交互服务标签语言解析方法及系统 |
CN102541863A (zh) * | 2010-12-14 | 2012-07-04 | 联芯科技有限公司 | 一种应用于移动终端的网页压缩方法 |
CN102915308A (zh) * | 2011-08-02 | 2013-02-06 | 阿里巴巴集团控股有限公司 | 一种页面渲染的方法及装置 |
CN102654885A (zh) * | 2012-04-28 | 2012-09-05 | 北京华胜天成科技股份有限公司 | 移动终端网页适配系统和方法 |
CN103279518A (zh) * | 2013-05-27 | 2013-09-04 | 中山爱科数字科技股份有限公司 | 一种浏览器 |
Also Published As
Publication number | Publication date |
---|---|
CN103473347A (zh) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103473347B (zh) | 一种基于网页相似度的浏览器渲染优化方法 | |
Zhang et al. | Smart caching for web browsers | |
US9448999B2 (en) | Method and device to detect similar documents | |
JP6203374B2 (ja) | ウェブページ・スタイルアドレスの統合 | |
WO2015172567A1 (zh) | 一种互联网信息搜索聚合呈现方法 | |
US20150135061A1 (en) | Systems and methods for parallel traversal of document object model tree | |
US8468145B2 (en) | Indexing of URLs with fragments | |
EP3161662B1 (en) | Optimized browser render process | |
CN103246732B (zh) | 一种在线Web新闻内容的抽取方法及系统 | |
CN104572934B (zh) | 一种基于dom的网页关键内容抽取方法 | |
US20160085875A1 (en) | Method for configuring browser bookmarks, device and terminal thereof | |
CN105740370B (zh) | 一种在线Web新闻内容抽取系统 | |
Wang et al. | A novel web page text information extraction method | |
CN103309954A (zh) | 一种基于html网页的数据抽取系统 | |
CN107766384A (zh) | 一种确定页面发布时间的方法和装置 | |
EP2312473A1 (en) | System, apparatus and method for processing content on a computing device | |
CN103577444A (zh) | 一种操控浏览器的方法及系统 | |
CN106897287A (zh) | 网页发布时间抽取方法和用于网页发布时间抽取的装置 | |
WO2020040718A1 (en) | Resource pre-fetch using age threshold | |
CN104537084A (zh) | 一种xml文本定位方法 | |
CN108197157B (zh) | 管理待存储数据的方法、设备及计算机可读存储介质 | |
CN107122389B (zh) | 一种实现流式和多模式快速查找网页中url链接的方法 | |
Xiaoshu | Optimized development of web front-end development technology | |
WO2014146445A1 (en) | Method and system for managing webpage links in a browser | |
CN103365864B (zh) | 一种网页前端定位数据的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |