网页加载方法和网页加载装置的制作方法

文档序号:6470981阅读:163来源:国知局
专利名称:网页加载方法和网页加载装置的制作方法
技术领域
本发明主要涉及计算机领域,尤其涉及计算机领域的网页加载方法和网页 加载装置。
背景技术
从上世纪90年代以来,随着网络相关技术的逐渐成熟,WWW( World Wide Web,万维网)上的信息资源经历了爆炸性的增长,网页的数量极大丰富。网 页可按其生成方式分为两种其内容全部以文件的形式存储在存储介质上,月l 务器响应用户请求时不加修改地传给客户端浏览器的网页称为静态网页;而其 内容在服务器响应客户端请求期间通过运行某种程序逻辑生成的则称为动态 网页。
在互联网(Internet)发展的早期,静态网页是网页存在的主要形式;而从 上世纪九十年代未开始,随着各种网页脚本技术的日渐成熟,动态网页的应用 范围则越来越广。今天,绝大多数网站的页面都是通过动态网页技术生成。这 些大量的动态网页通常在一段时间内,或者多个不同网页之间,其生成的内容 是一样的,但是对于每个用户请求这些生成同样网页内容的程序逻辑都会被执 行,造成了计算资源的大量浪费。基于原始文件的网页緩存技术可以从一定程 序上緩解这种浪费,在一定程度上提高网络服务器的用户请求服务能力。
随着互联网,特别是Web2.0迅速发展,基于浏览器的应用越来越丰富; 在嵌入式领域随着IPTV(Internet Protocol Television,交互式网络电视)机顶盒、 DTV (DigitalTelevision,数字电视)机顶盒、可视电话、甚至其他智能家电 设备等也提供了 Internet信息的访问功能,浏览器担当起越来越重要的角色。 但目前浏览器普遍存在着性能问题,网页打开速度较慢,特别是在嵌入式终端 上,由于嵌入式终端的内存等资源都有限,不能很好的满足用户交互过程中响 应速度要求。提高网页浏览的速度,进而提高用户体验,现有技术一般通过如
下三个方面进行改进
1、 优化Web服务器和网页内容;
2、 提高网络带宽;
3、 提高浏览器客户端的运行性能。
发明人在实践中发现,现有技术至少存在以下问题随着服务器软硬件的 成熟,Web服务器的性能越来越快,网络带宽的提高已不再是Web浏览器性 能的瓶颈。而网页内容的优化和客户端浏览器性能的提高,则越来越重要。特 别是:嵌入式终端对于浏览器的内存占用要求要低,而交互体验要求速度更快; 通用浏览器目前已经成为一个应用运行环境和平台,出现了很多通用的 Javascript类库和包,占用了越来越多的内存。而且目前浏览器采用基于页面 的管理方法,导致每个页面的加栽都需要占用很多资源。

发明内容
本发明实施例提出一种网页加载方法和网页加载装置,能够减少网页加载 的时间,提高加载速度,降低内存占用。 本发明实施例的技术方案是这样实现的 一种网页加载方法,包括
判断是否有与待加载资源对应的资源解析数据,如果有则直接加载所述资 源解析数据;
如果没有则请求待加载原始资源,并解析所述待加载原始资源,生成与所 述待加载原始资源对应的资源解析数据,加载所述资源解析数据。 一种网页加栽装置,包括
判断单元,用于判断是否有与待加载资源对应的资源解析数据; 请求单元,用于请求待加载原始资源;
解析单元,用于解析所述待加载原始资源,生成与所述待加载原始资源对 应的资源解析数据;
加载单元,用于当所述判断单元判断有与待加载资源对应的资源解析数据 时,加载所述资源解析数据,当所述判断单元判断没有与待加载资源对应的资 源解析数据时,加载所述解析单元解析生成的资源解析数据。
本发明实施例所述技术方案通过共享解析后的资源解析数据,避免了共享 资源的重新解析,从而减少了加载的时间,提高加载速度,降低内存占用。


图1为不同网页间资源共享的示意图; 图2为浏览器多标签的示意图; 图3为网页加栽的流程图4为本发明一种网页加载方法第一实施例的流程图5为多个Web应用引用同一个软件库的示意图6为本发明一种网页加载装置第一实施例的组成结构图。
具体实施例方式
为使本发明实施例的目的、技术方案和优点表达得更加清楚明白,下面结 合附图及具体实施例再作进一步详细的说明。
针对网页的特性及用户浏览的习惯分析, 一般一个用户会在一个网站上的 多个页面间浏览切换多次,网页内容虽然会发生变化,但可能会存在多个被不 同网页引用的公共资源。如图1所示,所述两个内容不同的网页pagel和page2 分别引用了相同的资源文件cssl.css、 imgl.gif、 scriptl.js。
对于浏览器支持多标签的情况,可能在同一个浏览器的多个不同标签中同 时访问同 一个网页、或者多个网页引用了相同的资源文件(如JavaScript、 CSS 、 图片等)。如图2所示,所述浏览器同时打开多个标签,分别打开了 pagel、 page2、 pagel和其他网页,其中多个标签中有两个相同的网页pagel,且不同 的网页如pagel和page2间有内容共享,参照图1。
这些网页和资源内容是可以共享的,现有技术提出基于原始文件的共享, 通过本地緩存(Cache)减少对服务器的访问请求,这种基于原始文件緩存的 方式可降低访问服务器的时间,在网络环境恶劣的情况下,效果十分明显。但 对原始文件的緩存需要占用大量的内存资源,对于嵌入式终端来说,内存资源 是十分宝贵的,并且每次加载时还需要基于原始文件进行解析、需要终端执行 大量操作,需要大量的时间,所以无法进一步提高加载速度。
为了更好的对本发明实施例的技术方案进行说明,首先对浏览器网页加载
流程进行描述 一个网页一般由HTML(Hyper Text Markup Language,超文本 标记语言)、JavaScript (在浏览器客户端完成动态网页功能的脚本语言)、CSS
(Cascading Style Sheet层叠样式单)、图片等若干个文件组成,浏览器在加载 显示一个网页时,需要通过网络IO (Input Output,输入输出)获取文件(HTTP
(Hyper Text Transport Protocol超级文本传送协议)或HTTPS )、解析HTML、 解析图片、解析JavaScript、执行JavaScript和布局显示等步骤;之后再进行用 户交互过程中,会重复上述部分或全部步骤。参照图3,所述网页加载流程包 括
步骤310、通过网络IO从服务器获取HTML文件。
步骤320、解析所述HTML文件,并查找其它需要获取的资源。
步骤330、通过网络IO获取其它资源。
步骤340、识别资源类型。
步骤350、解析资源。
所述步骤350 (图中未示出)包括三个部分,当资源类型是JavaScript文 件时,进入步骤351,进行JavaScript解析;当资源类型是图片时,进入步骤 352,进行图片解析;当资源类型是CSS时,进入步骤353,进行CSS解析。
步骤360、判断所有资源是否处理完毕,如果是则进入下一步,否则返回 步骤330。
步骤370、进行网页的布局、显示。
其中,所述网页加载流程在不同的浏览器实现中有不同,如解析、加载、 布局和显示可能是并行的,也就是说,步骤370可以与其他步骤同时进行。
其中,HTML、 CSS解析后,形成树形的内存数据结构,其中HTML解 析形成的内存数据结构称为DOM (Document Object Model文档对象才莫型) 树;图片解析将图片形成解析后的RGBA ( Red Green Blue and Alpha ,红、 绿、蓝三原色加透明度,图片解析后可直接显示的数据)位图数据;布局和显 示则是在DOM树的基础上计算出每个元素的显示位置并将这些信息保存在 DOM树型数据结构对应的节点上;JavaScript解析形成语法数据结构或进一步 生成虚拟指令字节码。
参照图4,示出了本发明一种网页加载方法第一实施例的流程图,包括步

步骤410、判断是否有与待加载资源对应的资源解析数据,如果有则进入 步骤420;如果没有则进入步骤430。
根据前面的描述可知,资源原始文件从服务器端传送至客户端后,并不能 直接加载,需要在客户端进行解析后才能加载。如HTML、 CSS解析后,形 成树形的内存数据结构;图片解析将图片形成解析后的RGBA位图数据; JavaScript解析后形成语法数据结构或进一步生成虛拟指令字节码。
420、直接加载所述资源解析数据。
如果两个网页有内容共享,如图片共享、CSS共享,则直接加载所述匹配 的资源解析数据,从而不再需要进行解析,节省了系统资源。 步骤430、请求待加载原始资源。
如果没有内容共享,则按照现有流程加载网页,通过网络IO向服务器请 求资源文件。
步骤440、解析所述原始资源,生成资源解析数据,进入步骤450。 步骤450、加载所述资源解析数据。
为了更好的理解本发明实施例的有益效果,下面以每一种情形的内容共享 为例进行说明
通过不同网页间共享同一个HTML解析后的DOM树来减少访问同一个 网页或者两个不同网页中嵌套同一个网页的内存占用,避免重新解析的步骤, 从而减少了加载的时间,提高加载速度。
通过不同网页间共享同一个CSS文件解析后生成的凝:据结构,避免重新 解析的步骤,从而减少了加载的时间,提高加载速度,降低内存占用。
通过不同网页间共享同 一个图片解码后的位图数据,避免重新解析的步
骤,从而减少了加载的时间,提高加载速度,降低内存占用。因为图片解码后 的数据往往占用很大内存,对于内存的节省效果显著。
通过不同网页间共享同 一个JavaScript解析后的语法树和/或指令字节码, 避免重新解析的步骤,从而减少了加载的时间,提高加载速度,降低内存占用。 由于JavaScript解析过程较慢、并且过程中不会被其他脚本修改、因此对网页
加载速度的提高有很好效果。并且目前的JavaScript开发包复杂度越来越大, 内存占用也十分显著,通过共享,基于web应用的内存占用将会大大降低。
通过以上对本发明实施例技术方案和效果的描述,可以知道,本发明实施 例通过共享解析后的资源解析数据,避免了共享资源的重新解析,从而减少了 加载的时间,提高加载速度,降低内存占用。
在本发明一种网页加载方法的第二实施例中,除了包括所述第一实施例中 的各步骤外还进一步,在生成资源解析数据后还包括步骤
存储所述资源解析数据。
通过存储解析后生成的资源解析数据,增加了内存中资源解析数据的数. 量,从而能够提高共享命中率。
对于嵌入式终端来说,内存资源终究是有限的,如果内存资源被全部占用, 则无法再打开新网页,因此不可能无限的存储解析后的资源解析数据,因此, 需要在共享命中率和内存占用之间找到一个平衡。本发明实施例对内存中的所 述资源解析数据建立优先级等级,所述资源解析数据的优先级等级可以根据不 同的要素建立不同的优先级等级,如可以根据引用次数的多少、占用内存的大 小、进入内存时间的长短等等来建立所述资源解析数据的优先级等级。也可以 基于已经访问的网页引用关系进行分析,识别共享频率较高的文件,结合最近 访问的URL( Uniform Resource Location,统一资源定位),共享频率越高、 最近访问次数多的资源具有较高的优先级。
在需要释放内存资源时,根据所述资源解析数据的优先级等级进行释放, 如优先级低的先释放,优先级高的后释放。
针对所有资源,在获取数据前,都先进行判断,是否有解码过的对应资源, 如果有则增加引用计数,并直接获取到该资源解析后的数据进行加载;否则, 请求数据并完成解析和加载,并存储所述解析后的数据,增加引用计数。
每增加或减少一个资源引用,进行相应的优先级统计。例如可以针对所有 资源给出低、中、高三类优先级。
在网页卸载时,通过延迟卸载方法,如在同一个浏览器窗口上, 一个网页 切换到另外的网页上时,对于资源引用为0的资源延迟一定时间,如3s进行 卸栽,延迟时间到达后,仍然未有资源引用,则释放之前的资源,通过所述延
迟卸载的方式,也可以提高共享命中率。
在网页卸载时,首先直接给该网页所有的资源引用数减一 (而不是直接释 放对应资源),之后进行资源释放步骤。
以下为一个资源释放步骤的实例,包括
1、 判断所有资源引用计数为零的资源,如果该资源优先级最低,则直接 释放该资源。
2、 然后判断当前的资源限额,如果所占资源超出了资源限额,则按最后 访问顺序,先释放最"老"的优先级为"中"且引用计数为0的资源,直到所 占资源降低到资源限额以内。
3、 如果释放了所有资源为中引用为0的资源,此时所占资源仍然超出资 源限额,则以最后访问顺序开始释放最"老,,的优先级为"高"的切引用计数 为0的资源,直到到达资源限额以内,停止释^t。
4、 在延迟卸载情况下,如延迟3秒(一个网页的平均加载时间在3s之内) 卸载资源,那么在网页卸载时,首先只完成资源引用计数减一操作,并启动一 个3秒定时器。
定时器时间到达时,再进行资源释放,此时按照上述步骤1至3进行处理。
本发明实施例中,判断对应资源的具体方法可以是根据不同的资源数据 类型,按照统一资源定位进行资源的匹配查询,识别相同的资源。
另外,目前很多JavaScript通用软件包,同 一个JavaScript软件包可被不 同的网站使用,但可能分布在不同的服务器上,URL不同,但内容相同。参 照图5,三个Web应用分别部署在三个不同的Webserver上;且所述三个Web 应用分别引用了同一个JavaScript库的libl。这种情况下,可以采用增强的方 式进行共享内容的识别,通过统一 JavaScript软件包管理机制,提供跨网站的 相似内容共享。具体方法如下
1 、在每个JavaScript文件的头部,采用注释的方式(如可采用符合Doxygen 语法)描述软件包名称、版本、日期、作者等信息。
2、浏览器首先通过URL的文件名匹配,然后通过软件包的名称、版本、 曰期和作者信息进行比较,识别出内容相同的软件包,对于内容相同的软件包, 进行资源共享。
另夕卜,作为更安全、准确的判断,可在如上方法基础上结合如下方式进行:
3、 结合该文件的修改日期(通过Webserver下发的HTTP头字段获取到 文件最后修改日期),如果修改日期一样,则认为两个软件包是一致的。
4、 通过对该文件进行扫描计算出hash值,两个文件比较若hash—致, 则认为两个软件包是一致的。
通过以上对本发明实施例技术方案和效果的描述,可以知道,本发明实施 例通过共享解析后的资源解析数据,避免了共享资源的重新解析,从而减少了 加载的时间,提高加载速度,降低内存占用。
参照图6,示出了本发明一种网页加载装置第一实施例的组成结构图,包

判断单元610、用于判断是否有与待加载资源对应的资源解析数据。 所述判断的具体方法在前面进行了详细描述,如根据URL进行判断,根 据统一 JavaScript软件包管理机制进行判断,在此不再赘述。 请求单元620、用于请求待加载原始资源。
如果没有内容共享,则按照现有流程加载网页,通过网络IO向服务器请 求资源文件。
解析单元630、用于解析所述待加载原始资源,生成与所述待加载原始资 源对应的资源解析数据。
加载单元640、用于当所述判断单元610判断有与待加载资源对应的资源 解析数据时,加载所述资源解析数据,当所述判断单元610判断没有与待加载 资源对应的资源解析数据时,加载所述解析单元630解析生成的资源解析数 据。
通过以上对本发明实施例:汰术方案和效杲的描述,可以知道,本发明实施 例通过共享解析后的资源解析数据,避免了共享资源的重新解析,从而减少了 加载的时间,提高加载速度,降低内存占用。
在本发明一种网页加载装置的第二实施例中,除了包括所述第一实施例中 的判断单元、请求单元、解析单元、加载单元外,还进一步,还包括存储单元, 用于存储所述解析单元生成的所述资源解析数据。
通过存储解析后生成的资源解析数据,增加了内存中资源解析数据的数
量,从而能够提高共享命中率
与方法实施例对应,为了更好的处理共享命中率和内存占用之间的平衡,
所述装置还包括
管理单元,用于管理所述资源解析数据的引用计lt,在所述加载单元加载 资源解析数据后增加所述资源解析数据的引用计数,在网页卸载时减少所述资 源解析数据的引用计数。
统计单元,用于建立所述资源解析数据的优先级等级。 本发明实施例对内存中的所述资源解析数据建立优先级等级,所述资源解 析数据的优先级等级可以根据不同的要素建立不同的优先级等级,如可以根据 引用次数的多少、占用内存的大小、进入内存时间的长短等等来建立所述资源 解析数据的优先级等级。也可以基于已经访问的网页引用关系进行分析,识别 共享频率较高的文件,结合最近访问的URL( Uniform Resource Location,统 一资源定位),共享频率越高、最近访问次数多的资源具有较高的优先级。 释放单元,用于释放存储的优先级等级低的资源解析数据。 在需要释放内存资源时,根据所述资源解析数据的优先级等级进行释放, 如优先级低的先释放,优先级高的后释放。为了在共享命中率和内存占用之间 找到一个最佳平衡,本发明实施例对内存中的所述资源解析数据增加引用计 数。
本发明实施例通过共享解析后的资源解析数据,避免了共享资源的重新解 析,从而减少了加栽的时间,提高加载速度,降低内存占用。
所述各单元的工作原理和工作过程在前面方法实施例部分进行了详细描 述,为了篇幅考虑,在此不再赘述,参见前面相关部分的描述即可。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤 是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可 读取存储介质中,该程序在执行时,包括如上述方法实施例的步骤,所述的存 储介质,如ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发 明的保护范围之内。
权利要求
1. 一种网页加载方法,其特征在于,包括:判断是否有与待加载资源对应的资源解析数据,如果有则直接加载所述资源解析数据;如果没有则请求待加载原始资源,并解析所述待加载原始资源,生成与所述待加载原始资源对应的资源解析数据,加载所述资源解析数据。
2. 根据权利要求1所述的网页加载方法,其特征在于,生成与所述待加 载原始资源对应的资源解析数据后还包括存储所述资源解析数据。
3. 根据权利要求2所述的网页加载方法,其特征在于,加载所述资源解 析数据后还包括增加所述资源解析数据的引用计数。
4. 根据权利要求3所述的网页加载方法,其特征在于 在网页卸载时减少所述资源解析数据的引用计^:。
5. 根据权利要求4所述的网页加载方法,其特征在于,存储所述资源解 析数据后还包括建立所述资源解析数据的优先级等级。
6. 根据权利要求5所述的网页加载方法,其特征在于,所述建立所述资 源解析数据的优先级等级包括根据所述资源解析数据的引用计数建立所述资源解析数据的优先级等级。
7. 根据权利要求5所述的网页加载方法,其特征在于,还包括 释放存储的优先级等级低的资源解析数据。
8. 根据权利要求7所述的网页加载方法,其特征在于,所述释放存储的 优先级等级低的资源解析数据为延迟预定的时间后释放所述存储的优先级等级低的资源解析数据。
9. 根据权利要求1所述的网页加载方法,其特征在于,所述判断是否有 与待加栽资源对应的资源解析数据的具体过程为按照统一资源定位进行资源的匹配查询,判断是否有与待加载资源对应的 资源解析数据。
10. 根据权利要求1至9任一项所述的网页加载方法,其特征在于,所述 资源包括超文本标识语言文件、脚本语言文件、图片和/或层叠样式单文件。
11. 一种网页加载装置,其特征在于,包括判断单元,用于判断是否有与待加载资源对应的资源解析数据; 请求单元,用于请求待加载原始资源;解析单元,用于解析所述待加栽原始资源,生成与所述待加载原始资源对 应的资源解析数据;加载单元,用于当所述判断单元判断有与待加载资源对应的资源解析数据 时,加栽所述资源解析数据,当所述判断单元判断没有与待加载资源对应的资 源解析数据时,加载所述解析单元解析生成的资源解析数据。
12. 根据权利要求11所述的网页加载装置,其特征在于,还包括 存储单元,用于存储所述解析单元生成的所述资源解析数据。
13. 根据权利要求12所述的网页加载装置,其特征在于,还包括 管理单元,用于管理所述资源解析数据的引用计数,在所述加载单元加载资源解析凝:据后增加所述资源解析数据的引用计ft,在网页卸载时减少所述资 源解析数据的引用计数。
14. 根据权利要求13所述的网页加载装置,其特征在于,还包括 统计单元,用于建立所述资源解析数据的优先级等级。
15. 根据权利要求14所述的网页加载装置,其特征在于,还包括 释放单元,用于释放存储的优先级等级低的资源解析数据。
16. 根据权利要求11至15任一项所述的网页加载装置,其特征在于,所 述资源包括超文本标识语言文件、脚本语言文件、图片和/或层叠样式单文件。
全文摘要
本发明实施例公开了一种网页加载方法和网页加载装置,所述方法包括判断是否有与待加载资源对应的资源解析数据,如果有则直接加载所述资源解析数据;如果没有则请求待加载原始资源,并解析所述待加载原始资源,生成与所述待加载原始资源对应的资源解析数据,加载所述资源解析数据。通过共享解析后的资源解析数据,避免了共享资源的重新解析,从而减少了加载的时间,提高加载速度,降低内存占用。
文档编号G06F17/30GK101382958SQ20081022460
公开日2009年3月11日 申请日期2008年10月21日 优先权日2008年10月21日
发明者孙增才 申请人:深圳华为通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1