一种进行网页加载的方法、装置和浏览器的制造方法
【专利摘要】本发明公开了一种进行网页加载的方法,包括:在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;当判定当前网页适于采用第二浏览器内核加载时,启动第二浏览器内核;当监听到第二浏览器内核请求加载当前网页时,采用第一浏览器内核生成当前网页的第二加载请求;依据第二加载请求采用第一浏览器内核获取第一网页资源,第一网页资源为第一浏览器内核针对第一加载请求所获取并缓存的网页资源;采用第一浏览器内核从服务器侧获取第二网页资源,第二网页资源为除第一网页资源外的加载当前网页所需的剩余网页资源;采用第一浏览器内核将第一网页资源和第二网页资源传输到第二浏览器内核进行当前网页的加载。本发明提高了网页的加载速度。
【专利说明】一种进行网页加载的方法、装置和浏览器
【技术领域】
[0001]本发明涉及浏览器的【技术领域】,特别是涉及一种进行网页加载的方法、一种进行网页加载的装置和一种浏览器。
【背景技术】
[0002]浏览器从架构上可以分为两个部分,即内核和外壳。浏览器内核是指浏览器的核心部分,可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS(JavaScript)引擎。渲染引擎主要负责取得网页的内容(包括HTML、XML、图像等)、整理信息(如加入CSS (Cascading Style Sheets,层叠样式表单)等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。JS引擎则是解析Javascript语言,执行Javascript语言来实现网页的动态效果。
[0003]浏览器内核的种类有很多,目前比较常见的浏览器内核有微软的IE浏览器使用的Trident内核,Firefox浏览器使用的Gecko内核,苹果的Safari浏览器和Google的Chrome浏览器使用的Webkit内核,以及,Opera浏览器采用的Presto内核。
[0004]当用户通过浏览器发起一个浏览网页的请求时,浏览器通过内核从目标网站下载网页的内容,然后分析网页内容,执行脚本,计算排版,最后输出到显示器显示给用户。每个浏览器具有一个内核,不管用户通过一个浏览器进程打开多少个网页,浏览器都使用同一个内核解释执行。
[0005]但是,这种单内核浏览器有很大的局限性,因为网页往往是按照某个内核支持的网络标准制作的,对于某个特定内核支持的网络标准,其他内核可能无法很好地支持(甚至无法支持)。例如,用户使用Firefox浏览器浏览网页,Firefox浏览器的内核能够很好地支持W3C标准,因此使用该浏览器可以浏览按照W3C标准制作的网页。但如果用户想要浏览招商银行网页使用网络银行,Firefox浏览器就无法满足这个用户需求。因为招商银行网站的网络银行功能需要ActiveX插件功能,而该功能可能只有IE的内核才能支持,这样用户在使用Firefox浏览器的情况下就无法使用招商银行的网络银行功能了。
【发明内容】
[0006]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种进行网页加载的方法和相应的一种进行网页加载的装置,以及一种浏览器。
[0007]依据本发明的一个方面,提供了一种进行网页加载的方法,包括:
[0008]在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;
[0009]当判定当前网页适于采用第二浏览器内核加载时,启动所述第二浏览器内核;
[0010]当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求;[0011]依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源,所述第一网页资源为所述第一浏览器内核针对所述第一加载请求所获取并缓存的网页资源;
[0012]采用所述第一浏览器内核从服务器侧获取第二网页资源,所述第二网页资源为除所述第一网页资源外的加载当前网页所需的剩余网页资源;
[0013]采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
[0014]可选地,所述第一浏览器内核包括第一内核进程和第二内核进程,所述第二浏览器内核包括第三内核进程。
[0015]可选地,所述在浏览器侧采用所述第一浏览器内核接收当前网页的第一加载请求的步骤包括:
[0016]在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
[0017]采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
[0018]可选地,所述启动所述第二浏览器内核的步骤包括:
[0019]中止所述第一内核进程获取并缓存加载当前网页所需的资源;
[0020]启动所述第三内核进程;
[0021]采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
[0022]可选地,所述当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求的步骤包括:
[0023]调用网络编程接口 WinInet启动管理会话类CInternetSession ;
[0024]当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的请求时,提取所述请求中的URL ;
[0025]判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传输到所述第二内核进程中;
[0026]采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
[0027]可选地,所述依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源的步骤包括:
[0028]提取所述第二加载请求中当前网页的URL;
[0029]判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核进程提取所述URL对应的网页资源。
[0030]可选地,所述采用所述第一浏览器内核从服务器侧获取第二网页资源的步骤包括:
[0031]在所述第二内核进程中,将用户代理UserAgent设置为指示第二浏览器内核的标识;
[0032]通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网页资源的标识;所述服务器用于提取第二网页资源;
[0033]接收所述服务器侧返回的第二网页资源。
[0034]可选地,所述采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载的步骤包括:[0035]在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第二网页资源传输到所述第三内核进程中;
[0036]采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网页。
[0037]根据本发明的另一方面,提供了一种进行网页加载的装置,包括:
[0038]第一加载请求接收模块,适于在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;
[0039]第二浏览器内核启动模块,适于在判定当前网页适于采用第二浏览器内核加载时,启动所述第二浏览器内核;
[0040]第二加载请求生成模块,适于在监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求;
[0041]第一网页资源获取模块,适于依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源,所述第一网页资源为所述第一浏览器内核针对所述第一加载请求所获取并缓存的网页资源;
[0042]第二网页资源获取模块,适于采用所述第一浏览器内核从服务器侧获取第二网页资源,所述第二网页资源为除所述第一网页资源外的加载当前网页所需的剩余网页资源;
[0043]网页加载模块,适于采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
[0044]可选地,所述第一浏览器内核包括第一内核进程和第二内核进程,所述第二浏览器内核包括第三内核进程。
[0045]可选地,所述第一加载请求接收模块还适于:
[0046]在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
[0047]采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
[0048]可选地,所述第二浏览器内核启动模块还适于:
[0049]中止所述第一内核进程获取并缓存加载当前网页所需的资源;
[0050]启动所述第三内核进程;
[0051]采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
[0052]可选地,所述第二加载请求生成模块还适于:
[0053]调用网络编程接口 WinInet启动管理会话类CInternetSession ;
[0054]当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的请求时,提取所述请求中的URL ;
[0055]判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传输到所述第二内核进程中;
[0056]采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
[0057]可选地,所述第一网页资源获取模块还适于:
[0058]提取所述第二加载请求中当前网页的URL;
[0059]判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核进程提取所述URL对应的网页资源。[0060]可选地,所述第二网页资源获取模块还适于:
[0061]在所述第二内核进程中,将用户代理UserAgent从设置为指示第二浏览器内核的标识;
[0062]通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网页资源的标识;所述服务器用于提取第二网页资源;
[0063]接收所述服务器侧返回的第二网页资源。
[0064]可选地,所述网页加载模块还适于:
[0065]在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第二网页资源传输到所述第三内核进程中;
[0066]采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网页。
[0067]根据本发明的另一方面,提供了一种浏览器,包括:
[0068]第一加载请求接收模块,适于在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;
[0069]第二浏览器内核启动模块,适于在判定当前网页适于采用第二浏览器内核加载时,启动所述第二浏览器内核;
[0070]第二加载请求生成模块,适于在监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求;
[0071]第一网页资源获取模块,适于依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源,所述第一网页资源为所述第一浏览器内核针对所述第一加载请求所获取并缓存的网页资源;
[0072]第二网页资源获取模块,适于采用所述第一浏览器内核从服务器侧获取第二网页资源,所述第二网页资源为除所述第一网页资源外的加载当前网页所需的剩余网页资源;
[0073]网页加载模块,适于采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
[0074]本发明中,当判定当前网页适于采用第二浏览器内核加载时启动第二浏览器内核,进行浏览器内核的切换,对于原浏览器内核进行请求时获取的已缓存的网页资源的进行重复使用,并请求获取到未进行缓存的网页资源,然后通过IPC将获取的全部网页资源发送到第二浏览器内核中进行渲染加载,避免了重复获取网页资源,提高了网页的加载速度。
[0075]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【专利附图】
【附图说明】
[0076]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0077]图1示出了根据本发明一个实施例的一种进行网页加载的方法实施例的步骤流程图;以及
[0078]图2示出了根据本发明一个实施例的一种进行网页加载的装置实施例的结构框 图。
【具体实施方式】
[0079]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开 的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围 完整的传达给本领域的技术人员。
[0080]参照图1,示出了根据本发明一个实施例的一种进行网页加载的方法实施例的步 骤流程图,具体可以包括以下步骤:
[0081]步骤101,在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;
[0082]需要说明的是,浏览器可以包括两个或两个以上的浏览器内核,第一浏览器内核 可以为浏览器当前默认使用的浏览器内核,该默认的浏览器内核可以是系统设置的,也可 以使用户设置的,具体可以是Webkit内核等高性能的浏览器内核。当然,还可以是Gecko 内核、Presto内核等等,本发明实施例对此不加以限制。
[0083]当前网页的第一加载请求可以是指用户发出的加载某个网页的指示。例如,用户 可以通过点击某链接来打开一个网页,或者在地址栏输入网址来打开一个网页等等。当用 户点击某链接的指示时,就相当于接收到了用户加载网页的加载请求;同样,当在地址栏输 入某网址并点击确定按钮或按下回车键时,也相当于接收到了用户加载网页的加载请求。
[0084]其中,加载请求的内容可以包括用户请求加载的网页的标识和/或网页的特征。 网页标识可以是能够代表一个唯一确定的网页的信息,例如统一资源标识符(Uniform Resource Identifier, URI),统一资源标识符又具体可以包括统一资源定位符(Uniform Resource Locator, URL),或者统一资源名称(Uniform Resource Name, URN)等等。
[0085]在具体实现中,第一浏览器内核可以包括第一内核进程和第二内核进程。
[0086]内核进程可以是浏览器执行程序和分配资源的单位。
[0087]在本发明的一种优选实施例中,步骤101具体可以包括如下子步骤:
[0088]子步骤S11,在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求; 所述第一加载请求中包括当前网页的URL ;
[0089]子步骤S12,采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页 所需的资源。
[0090]当接收到用户加载网页的加载请求时,可以通过第一内核进程进行正常的网页加 载。具体而言,可以采用第一内核进程直接访问URL加载当前网页。当然,也可以采用URI 和/或URN进行当前网页的加载。
[0091]以采用第一内核进程访问URL加载当前网页为例,加载网页的过程可以如下:
[0092]1.当检测到用户输入网址(假设是个HTML页面,并且是第一次访问)时,浏览器向 服务器发出请求加载该网址指示的网页,服务器返回对应的HTML文本;
[0093]2.浏览器开始载入HTML文本的源代码,当检测到< head >标签内有一个< link >标签时,则需要引用外部CSS文件;[0094]3.浏览器向服务器发出CSS文件的请求,服务器返回对应的CSS文件;
[0095]4.浏览器继续载入HTML文本中< body >部分的代码,此时CSS文件已经接收到, 可以开始渲染网页;
[0096]5.当浏览器在HTML文本中检测到一个< img >标签时,需要引用了一张图片,则 向服务器发送加载图片的请求。此时浏览器不会等待图片下载完,而是继续渲染后面的代 码;
[0097]6.服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排布,因此 浏览器需要重新渲染这部分代码;
[0098]7.当浏览器检测到一个包含一行JavaScript代码的< script >标签时,贝U立即 运行;
[0099]8.采用JavaScript脚本执行了上述语句,其命令浏览器隐藏掉代码中的某个 < div > (style, display=”none”),由于缺少了< div >元素,浏览器需要重新渲染这部 分代码;
[0100]9.当检测到< /HTML >时,渲染完成;
[0101]10.当用户点击界面中的“换肤”按钮,JavaScript让浏览器换了< link >标签 的CSS路径;
[0102]11.浏览器采用< div >、< span >、< ul >、< Ii >等各元素,并向服务器请求 新的CSS文件,重新渲染页面。
[0103]在通过第一内核进程进行正常的网页加载,可以判断当前请求加载的网页所适配 的浏览器内核。
[0104]步骤102,当判定当前网页适于采用第二浏览器内核加载时,启动所述第二浏览器 内核;
[0105]在具体实现中,获知用户请求的网页与浏览器内核之间的适配关系(即当前网页 适于采用哪个浏览器内核进行加载)的方法可以有多种。
[0106]其中一种方法,可以根据从请求信息获得的内容以及预置规则,获知用户请求的 网页与所述浏览器内核之间的适配关系。
[0107]具体而言,预置规则可以包括特定适配规则、通用适配规则和/或不适配规则,在 请求加载网页的过程中,可以根据特定适配规则、通用适配规则和/或不适配规则,获知用 户请求的网页与浏览器内核之间的适配关系。其中,特定适配规则可以包括网页与内核之 间的适配关系,通用适配规则可以包括为用户选择平均加载速度最快的浏览器内核或为用 户选择对网络标准支持最好的浏览器内核,不适配规则可以包括网页与内核之间的不适配 关系。
[0108]由于浏览器还会根据接收到的加载请求向对应的服务器发送关于加载网页的加 载请求信息,服务器会针对加载请求信息返回响应信息,在响应信息中会携带一些网页的 页面内容等信息,因此在此种情形下,还可以根据从服务器返回的针对加载请求信息的响 应信息获得的内容以及预置规则,重新获知与用户请求的网页适配的浏览器内核;如果重 新获知的适配的浏览器内核与此前基于请求信息获知的适配浏览器内核不同,则选择重新 获知的适配浏览器内核加载用户请求的网页。
[0109]另外一种方法中,由于浏览器还会根据接收到的加载请求向对应的服务器发送关于加载网页的加载请求信息,服务器会针对加载请求信息返回响应信息,在响应信息中会 携带一些网页的页面内容等信息,因此在该方法中,可以直接根据从服务器返回的针对加 载请求信息返回的响应信息获取的内容以及预置规则,获知用户请求的网页与浏览器内核 之间的适配关系。
[0110]当然,也可以根据从加载请求获得的内容、从服务器返回的针对加载请求信息返 回的响应信息获取的内容以及预置规则,共同获知用户请求的网页与浏览器内核之间的适 配关系。
[0111]另外,在使用上述各实施例提供的方法加载网页时,还可以对加载用户请求的网 页的情况进行检测;如果出现符合预置内核切换条件的现象,则根据预置规则重新获知与 该网页适配的浏览器内核;选择重新获知的适配的浏览器内核加载用户请求的网页。其中, 符合预置内核切换条件的现象可以包括:在加载过程中检测所加载速度较慢,或者在加载 完毕后检测到网页没有正常显示,等等。
[0112]在本发明的一种优选实施例中,所述步骤102具体可以包括如下子步骤:
[0113]子步骤S21,在预置的资源映射表中查找所述URL对应的JavaScript资源。
[0114]子步骤S22,在预置的插件映射表中查找所述JavaScript资源对应的插件对象;
[0115]子步骤S23,确定所述插件对象适于运行的浏览器内核为当前网页匹配的浏览器 内核。
[0116]加载网页需要的页面资源可以包括HTML页面中的JavaScript、css、图片和/或 字体文件等资源。JavaSCript、CSS、图片和/或字体文件等页面资源可以用于页面的渲染。
[0117]其中,JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编 译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。解释语言的弱点是安全 性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而且由于 每次重新加载都会重新解译,加载后,有些代码会延迟至运行时才解译,甚至会多次解译, 所以网页加载的速度较慢。
[0118]因此,为了提高网页加载的效率,可以调用JavaScript所适配的浏览器内核进行 当前网页的加载。例如,各浏览器平均加载网页速度可能各不相同,根据在同等条件下的测 试,Presto内核执行同等JavaScript所需的时间仅有Trident和Gecko内核的约1/3。
[0119]在具体实现中,可以在浏览器或者服务器预置资源映射表,资源映射表中可以记 载加载不同网页(具体可以采用URL进行标识不同的网页,也可以采用URI和/或URN标识 不同的网页)所对应的页面资源,具体可以包括JavaScript。
[0120]可以在浏览器或服务器预置插件映射表,插件映射表中可以记载不同JavaScript 所对应启动的插件对象。在具体实现中,使用第一浏览器内核进行网页资源的请求后获 得网页资源,并返回到浏览器侧缓存中的网页资源数据,例如HTML文本、图片、视频元 素,以及其中嵌入的例如JavaScript或者插件对象,这些数据会被浏览器在网页加载时 进行渲染后进行显示。在解析这些网页资源进行渲染前,可以查询由浏览器进行维护的 JavaScript的名称。这些维护的JavaScript可以用于与不同的网页进行匹配,即在不同网 页的URL会对应不同的JavaScript的匹配项。
[0121]还可以在在浏览器或者服务器预置浏览器内核映射表。浏览器内核映射表中可以 记载加载不同插件对象所适配的浏览器内核。具体实现中,可以对网页资源中的插件对象进行加载和初始化时的监听:对于网页中的〈embed〉元素,其中的CLSID (指系统对于不同 的应用程序,文件类型,OLE对象,特殊文件夹以及各种系统组件分配一个唯一表示的ID代 码)会被作为网页资源的一部分而被识别到,CLSID是网页插件对象的唯一识别码。对于匹 配到指定的插件对象时,就切换到对应的浏览器内核,以使用该浏览器内核实现网页的再 渲染和加载。
[0122]例如,在预置资源映射表中查找到在当前网页下点击进行文件下载需要激活一 JavaScript脚本,此JavaScript脚本会对应启动一下载工具,此下载工具更适合运行在 Trident内核的浏览器下,则获知适配关系为当前网页适于采用Trident内核进行加载。
[0123]需要说明的是,资源映射表、插件映射表、浏览器内核映射表中的一个、两个或三 个可以合并在同一个映射表中。
[0124]相对应地,若在浏览器预置资源映射表、插件映射表和/或浏览器内核映射表,贝1J 可以在本地进行对应的查找。若在服务器预置资源映射表、插件映射表和/或浏览器内核 映射表,则可以发送对应的查找请求,并接收服务器返回的信息。
[0125]一般而言,第二浏览器内核可以为浏览器内置的除第一浏览器内核外的其他浏 览器内核,可以在某些情况适配当前网页的加载,可以为Trident内核(即IE内核),包括 IE-com内核(兼容的IE内核)和/或IE-stand内核。当然,还可以是Gecko内核、Presto 内核等等,本发明实施例对此不加以限制。
[0126]特别地,当当前网页适于采用第一浏览器内核进行加载时,可以直接采用第一浏 览器内核进行当前网页的加载。
[0127]在实际应用中,第二浏览器内核可以包括第三内核进程。需要说明的是,一个浏览 器可以运行一个或多个内核进程,并不仅仅限制在第一内核进程、第二内核进程和第三内 核进程。
[0128]本发明中,在网页进行渲染前进行适配浏览器内核的判断,通过使用了资源映射 表查找当前网页URL对应的JavaScript资源,在通过插件映射表查找该JavaScript资源 对应的插件对象,最后确定适配的浏览器内核,提高了采用浏览器内核加载网页的适配程 度,提高了加载网页的效率。
[0129]在本发明的一种优选实施例中,步骤102具体可以包括如下子步骤:
[0130]子步骤S31,中止所述第一内核进程获取并缓存加载当前网页所需的资源;
[0131]子步骤S32,启动所述第三内核进程;
[0132]子步骤S33,采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
[0133]在确定进行浏览器内核转换后,会停止当前浏览器内核(即第一浏览器内核)加载 当前网页。当前通过第一内核进程所能加载到的网页资源可以称之为第一网页资源。需要 说明的是,何时获知用户请求的网页与浏览器内核之间的适配关系,何时就中止采用第一 内核进程获取并缓存加载当前网页所需的资源。
[0134]第一内核进程可以将当前网页URL传递到第三内核进程中,也可以将当前网页的 URI和/或URN等网页标识传递到第三内核进程中,本发明实施例对此不加以限制。
[0135]步骤103,当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览 器内核生成当前网页的第二加载请求;
[0136]在切换到第二浏览器内核后,可以通过第二浏览内核使用当前网页的URL去发起一个新的浏览器导航。
[0137]在本发明的一种优选实施例中,所述步骤103具体可以包括如下子步骤:
[0138]子步骤S41:调用网络编程接口 WinInet启动管理会话类CInternetSession ;
[0139]子步骤S42:当在所述管理会话类CInternetSession中监听到所述第二内核进程 加载网页的请求时,提取所述请求中的URL ;
[0140]子步骤S43:判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前 网页的URL传输到所述第二内核进程中;
[0141]子步骤S44:采用所述第二内核进程针对当前网页的URL生成当前网页的第二加 载请求。
[0142]在第三内核进程中注册监听HTTP请求或者HTTPS请求,在WinInet (是Windows Internet扩展应用程序编程接口,是专为开发具有Internet功能的客户端应用程序而提 供的,可以支持HTTP协议,FTP协议和GOPHER协议)中进行一个CinternetSession对象,可 以对每一个监听到的HTTP请求或者HTTPS请求,继而识别出该HTTP请求中或者HTTPS请求 的URL。若判断该URL为当前网页的URL,则依据当前网页的URL进行IPC( Inter-Process Communication,进程间通信,指至少两个进程或线程间传送数据或信号的一些技术或方 法)将第三内核进程中的URL传递给第三内核进程中。在第三内核进程中依据该URL进行 一个基于第一浏览器内核的HTTP请求。
[0143]步骤104,依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源, 所述第一网页资源为所述第一浏览器内核针对所述第一加载请求所获取并缓存的网页资 源;
[0144]第一网页资源已存储在本地的缓存中,为避免重复请求网页资源,进一步加快网 页资源的请求,可以直接采用该第一网页资源进行当前网页的加载。
[0145]在本发明的一种优选实施例中,所述步骤104具体可以包括如下子步骤:
[0146]子步骤S51,提取所述第二加载请求中当前网页的URL ;
[0147]子步骤S52,判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所 述第二内核进程提取所述URL对应的网页资源。
[0148]第一浏览器内核中会在向该URL对应的服务器请求网页资源之前,会在本地的缓 存中的资源的查询,如果有已经下载的该URL对应的资源,就不会再向该服务器进行请求, 而是直接使用该已经缓存的资源。
[0149]步骤105,采用所述第一浏览器内核从服务器侧获取第二网页资源,所述第二网页 资源为除所述第一网页资源外的加载当前网页所需的剩余网页资源;
[0150]在中止第一内核进程获取并缓存加载当前网页所需的资源时,第一内核进程所获 取的第一网页资源可能并不是加载当前网页所需的全部网页资源,对于加载当前网页所需 的剩余网页资源,可以向服务器发送请求获取。
[0151]在本发明的一种优选实施例中,所述步骤105具体可以包括如下子步骤:
[0152]子步骤S61,在所述第二内核进程中,将用户代理UserAgent设置为指示第二浏览 器内核的标识;
[0153]子步骤S62,通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中 包括第二网页资源的标识;所述服务器用于提取第二网页资源;[0154]子步骤S63,接收所述服务器侧返回的第二网页资源。
[0155]对于没有下载的该URL对应的网页资源(即第二网页资源),可以生成一个基于第 一浏览器内核架构的请求去请求尚未没有下载的网页资源。在具体实现中,对于已经下载 的网页资源(即第一网页资源)和没有下载的网页资源,可以使用不同的标记,将这两种网 页资源进行标记分开。但是该基于第一浏览器内核架构的请求中的用户代理UserAgent的 参数是需要设置为指示第二浏览器内核的标识。
[0156]当然,对于获取到的第二网页资源,也可以存储在本地的缓存中。
[0157]步骤106,采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到 所述第二浏览器内核进行当前网页的加载。
[0158]第一网页资源和第二网页资源可以为加载当前网页所需的全部资源,当第二浏览 器内核将获取到第一网页资源和第二网页资源后,可以采用第二浏览器内核进行当前网页 的渲染。
[0159]在本发明的一种优选实施例中,所述步骤106具体可以包括如下子步骤:
[0160]子步骤S71,在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资 源和所述第二网页资源传输到所述第三内核进程中;
[0161]子步骤S72,采用所述第三内核进程采用所述第一网页资源和所述第二网页资源 渲染当前网页。
[0162]具体实现中,通过IPC通信将该已经缓存的网页资源(第一网页资源和第二网页 资源)传输到第三内核进程,第二浏览器内核的read函数获取该已经缓存的网页资源,并进 行后续的渲染和显示。
[0163]本发明中,当判定当前网页适于采用第二浏览器内核加载时启动第二浏览器内 核,进行浏览器内核的切换,对于原浏览器内核进行请求时获取的已缓存的网页资源的进 行重复使用,并请求获取到未进行缓存的网页资源,然后通过IPC将获取的全部网页资源 发送到第二浏览器内核中进行渲染加载,避免了重复获取网页资源,提高了网页的加载速度。
[0164]参照图2,示出了根据本发明一个实施例的一种进行网页加载的装置实施例的结 构框图,具体可以包括如下模块:
[0165]第一加载请求接收模块201,适于在浏览器侧采用第一浏览器内核接收当前网页 的第一加载请求;
[0166]第二浏览器内核启动模块202,适于在判定当前网页适于采用第二浏览器内核加 载时,启动所述第二浏览器内核;
[0167]第二加载请求生成模块203,适于在监听到所述第二浏览器内核请求加载当前网 页时,采用所述第一浏览器内核生成当前网页的第二加载请求;
[0168]第一网页资源获取模块204,适于依据所述第二加载请求采用所述第一浏览器内 核获取第一网页资源,所述第一网页资源为所述第一浏览器内核针对所述第一加载请求所 获取并缓存的网页资源;
[0169]第二网页资源获取模块205,适于采用所述第一浏览器内核从服务器侧获取第二 网页资源,所述第二网页资源为除所述第一网页资源外的加载当前网页所需的剩余网页资 源;[0170]网页加载模块206,适于采用所述第一浏览器内核将所述第一网页资源和第二网 页资源传输到所述第二浏览器内核进行当前网页的加载。
[0171 ] 在本发明的一种优选实施例中,所述第一浏览器内核包括第一内核进程和第二内 核进程,所述第二浏览器内核包括第三内核进程。
[0172]在本发明的一种优选实施例中,所述第一加载请求接收模块还适于:
[0173]在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求;所述第一加载 请求中包括当前网页的URL;
[0174]采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
[0175]在本发明的一种优选实施例中,所述第二浏览器内核启动模块还适于:
[0176]中止所述第一内核进程获取并缓存加载当前网页所需的资源;
[0177]启动所述第三内核进程;
[0178]采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
[0179]在本发明的一种优选实施例中,所述第二加载请求生成模块还适于:
[0180]调用网络编程接口 WinInet启动管理会话类CInternetSession ;
[0181]当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的 请求时,提取所述请求中的URL ;
[0182]判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传 输到所述第二内核进程中;
[0183]采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
[0184]在本发明的一种优选实施例中,所述第一网页资源获取模块还适于:
[0185]提取所述第二加载请求中当前网页的URL ;
[0186]判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核 进程提取所述URL对应的网页资源。
[0187]在本发明的一种优选实施例中,所述第二网页资源获取模块还适于:
[0188]在所述第二内核进程中,将用户代理UserAgent从设置为指示第二浏览器内核的 标识;
[0189]通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网 页资源的标识;所述服务器用于提取第二网页资源;
[0190]接收所述服务器侧返回的第二网页资源。
[0191]在本发明的一种优选实施例中,所述网页加载模块还适于:
[0192]在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第 二网页资源传输到所述第三内核进程中;
[0193]采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网 页。
[0194]对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关 之处参见方法实施例的部分说明即可。
[0195]本发明还提供了一种浏览器,具体可以包括如下模块:
[0196]第一加载请求接收模块,适于在浏览器侧采用第一浏览器内核接收当前网页的第 一加载请求;[0197]第二浏览器内核启动模块,适于在判定当前网页适于采用第二浏览器内核加载 时,启动所述第二浏览器内核;
[0198]第二加载请求生成模块,适于在监听到所述第二浏览器内核请求加载当前网页 时,采用所述第一浏览器内核生成当前网页的第二加载请求;
[0199]第一网页资源获取模块,适于依据所述第二加载请求采用所述第一浏览器内核获 取第一网页资源,所述第一网页资源为所述第一浏览器内核针对所述第一加载请求所获取 并缓存的网页资源;
[0200]第二网页资源获取模块,适于采用所述第一浏览器内核从服务器侧获取第二网页 资源,所述第二网页资源为除所述第一网页资源外的加载当前网页所需的剩余网页资源;
[0201]网页加载模块,适于采用所述第一浏览器内核将所述第一网页资源和第二网页资 源传输到所述第二浏览器内核进行当前网页的加载。
[0202]在本发明的一种优选实施例中,所述第一浏览器内核包括第一内核进程和第二内 核进程,所述第二浏览器内核包括第三内核进程。
[0203]在本发明的一种优选实施例中,所述第一加载请求接收模块还适于:
[0204]在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求;所述第一加载 请求中包括当前网页的URL;
[0205]采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
[0206]在本发明的一种优选实施例中,所述第二浏览器内核启动模块还适于:
[0207]中止所述第一内核进程获取并缓存加载当前网页所需的资源;
[0208]启动所述第三内核进程;
[0209]采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
[0210]在本发明的一种优选实施例中,所述第二加载请求生成模块还适于:
[0211]调用网络编程接口 WinInet启动管理会话类CInternetSession ;
[0212]当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的 请求时,提取所述请求中的URL ;
[0213]判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传 输到所述第二内核进程中;
[0214]采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
[0215]在本发明的一种优选实施例中,所述第一网页资源获取模块还适于:
[0216]提取所述第二加载请求中当前网页的URL ;
[0217]判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核 进程提取所述URL对应的网页资源。
[0218]在本发明的一种优选实施例中,所述第二网页资源获取模块还适于:
[0219]在所述第二内核进程中,将用户代理UserAgent从设置为指示第二浏览器内核的 标识;
[0220]通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网 页资源的标识;所述服务器用于提取第二网页资源;
[0221]接收所述服务器侧返回的第二网页资源。
[0222]在本发明的一种优选实施例中,所述网页加载模块还适于:[0223]在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第 二网页资源传输到所述第三内核进程中;
[0224]采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网 页。
[0225]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。 各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求 的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种 编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发 明的最佳实施方式。
[0226]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施 例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构 和技术,以便不模糊对本说明书的理解。
[0227]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在 上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施 例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保 护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面 的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此, 遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身 都作为本发明的单独实施例。
[0228]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地 改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单 元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或 子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任 何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的 任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的 权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来 代替。
[0229]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例 中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的 范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任 意之一都可以以任意的组合方式来使用。
[0230]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行 的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用 微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的进行网页加载的设备中的 一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法 的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实 现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。 这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式 提供。[0231]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领 域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中, 不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在 未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这 样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来 实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件 项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为 名称。
[0232]本发明实施例公开了 Al、一种进行网页加载的方法,包括:
[0233]在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;
[0234]当判定当前网页适于采用第二浏览器内核加载时,启动所述第二浏览器内核;
[0235]当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生 成当前网页的第二加载请求;
[0236]依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源,所述第一网 页资源为所述第一浏览器内核针对所述第一加载请求所获取并缓存的网页资源;
[0237]采用所述第一浏览器内核从服务器侧获取第二网页资源,所述第二网页资源为除 所述第一网页资源外的加载当前网页所需的剩余网页资源;
[0238]采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二 浏览器内核进行当前网页的加载。
[0239]A2、如Al所述的方法,其特征在于,所述第一浏览器内核包括第一内核进程和第 二内核进程,所述第二浏览器内核包括第三内核进程。
[0240]A3、如A2所述的方法,其特征在于,所述在浏览器侧采用所述第一浏览器内核接 收当前网页的第一加载请求的步骤包括:
[0241]在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求;所述第一加载 请求中包括当前网页的URL;
[0242]采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
[0243]A4、如A3所述的方法,其特征在于,所述启动所述第二浏览器内核的步骤包括:
[0244]中止所述第一内核进程获取并缓存加载当前网页所需的资源;
[0245]启动所述第三内核进程;
[0246]采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
[0247]A5、如A4所述的方法,其特征在于,所述当监听到所述第二浏览器内核请求加载 当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求的步骤包括:
[0248]调用网络编程接口 WinInet启动管理会话类CInternetSession ;
[0249]当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的 请求时,提取所述请求中的URL ;
[0250]判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传 输到所述第二内核进程中;
[0251]采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
[0252]A6、如A5所述的方法,其特征在于,所述依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源的步骤包括:
[0253]提取所述第二加载请求中当前网页的URL ;
[0254]判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核 进程提取所述URL对应的网页资源。
[0255]A7、如A5所述的方法,其特征在于,所述采用所述第一浏览器内核从服务器侧获 取第二网页资源的步骤包括:
[0256]在所述第二内核进程中,将用户代理UserAgent设置为指示第二浏览器内核的标
[0257]通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网 页资源的标识;所述服务器用于提取第二网页资源;
[0258]接收所述服务器侧返回的第二网页资源。
[0259]AS、如A2所述的方法,其特征在于,所述采用所述第一浏览器内核将所述第一网 页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载的步骤包括:
[0260]在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第 二网页资源传输到所述第三内核进程中;
[0261]采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网 页。
[0262]本发明实施例还公开了 B9、一种进行网页加载的装置,包括:
[0263]第一加载请求接收模块,适于在浏览器侧采用第一浏览器内核接收当前网页的第 一加载请求;
[0264]第二浏览器内核启动模块,适于在判定当前网页适于采用第二浏览器内核加载 时,启动所述第二浏览器内核;
[0265]第二加载请求生成模块,适于在监听到所述第二浏览器内核请求加载当前网页 时,采用所述第一浏览器内核生成当前网页的第二加载请求;
[0266]第一网页资源获取模块,适于依据所述第二加载请求采用所述第一浏览器内核获 取第一网页资源,所述第一网页资源为所述第一浏览器内核针对所述第一加载请求所获取 并缓存的网页资源;
[0267]第二网页资源获取模块,适于采用所述第一浏览器内核从服务器侧获取第二网页 资源,所述第二网页资源为除所述第一网页资源外的加载当前网页所需的剩余网页资源;
[0268]网页加载模块,适于采用所述第一浏览器内核将所述第一网页资源和第二网页资 源传输到所述第二浏览器内核进行当前网页的加载。
[0269]B10、如B9所述的装置,其特征在于,所述第一浏览器内核包括第一内核进程和第 二内核进程,所述第二浏览器内核包括第三内核进程。
[0270]B11、如BlO所述的装置,其特征在于,所述第一加载请求接收模块还适于:
[0271]在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求;所述第一加载 请求中包括当前网页的URL;
[0272]采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
[0273]B12、如Bll所述的装置,其特征在于,所述第二浏览器内核启动模块还适于:
[0274]中止所述第一内核进程获取并缓存加载当前网页所需的资源;[0275]启动所述第三内核进程;
[0276]采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
[0277]B13、如B12所述的装置,其特征在于,所述第二加载请求生成模块还适于:
[0278]调用网络编程接口 WinInet启动管理会话类CInternetSession ;
[0279]当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的 请求时,提取所述请求中的URL ;
[0280]判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传 输到所述第二内核进程中;
[0281]采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
[0282]B14、如B13所述的装置,其特征在于,所述第一网页资源获取模块还适于:
[0283]提取所述第二加载请求中当前网页的URL ;
[0284]判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核 进程提取所述URL对应的网页资源。
[0285]B15、如B13所述的装置,其特征在于,所述第二网页资源获取模块还适于:
[0286]在所述第二内核进程中,将用户代理UserAgent从设置为指示第二浏览器内核的 标识;
[0287]通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网 页资源的标识;所述服务器用于提取第二网页资源;
[0288]接收所述服务器侧返回的第二网页资源。
[0289]B16、如BlO所述的装置,其特征在于,所述网页加载模块还适于:
[0290]在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第 二网页资源传输到所述第三内核进程中;
[0291]采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网 页。
[0292]本发明实施例还公开了 C17、一种浏览器,包括B8至B16中任一项所述的进行网页 加载的装置。
【权利要求】
1.一种进行网页加载的方法,包括: 在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求; 当判定当前网页适于采用第二浏览器内核加载时,启动所述第二浏览器内核; 当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求; 依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源,所述第一网页资源为所述第一浏览器内核针对所述第一加载请求所获取并缓存的网页资源; 采用所述第一浏览器内核从服务器侧获取第二网页资源,所述第二网页资源为除所述第一网页资源外的加载当前网页所需的剩余网页资源; 采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
2.如权利要求1所述的方法,其特征在于,所述第一浏览器内核包括第一内核进程和第二内核进程,所述第二浏览器内核包括第三内核进程。
3.如权利要求2所述的方法,其特征在于,所述在浏览器侧采用所述第一浏览器内核接收当前网页的第一加载请求的步骤包括: 在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL ; 采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
4.如权利要求3所述的方法,其特征在于,所述启动所述第二浏览器内核的步骤包括: 中止所述第一内核进程获取并缓存加载当前网页所需的资源; 启动所述第三内核进程; 采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
5.如权利要求4所述的方法,其特征在于,所述当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求的步骤包括: 调用网络编程接口 WinInet启动管理会话类CInternetSession ; 当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的请求时,提取所述请求中的URL ; 判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传输到所述第二内核进程中; 采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
6.一种进行网页加载的装置,包括: 第一加载请求接收模块,适于在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求; 第二浏览器内核启动模块,适于在判定当前网页适于采用第二浏览器内核加载时,启动所述第二浏览器内核; 第二加载请求生成模块,适于在监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求; 第一网页资源获取模块,适于依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源,所述第一网页资源为所述第一浏览器内核针对所述第一加载请求所获取并缓存的网页资源; 第二网页资源获取模块,适于采用所述第一浏览器内核从服务器侧获取第二网页资源,所述第二网页资源为除所述第一网页资源外的加载当前网页所需的剩余网页资源; 网页加载模块,适于采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
7.如权利要求6所述的装置,其特征在于,所述第一浏览器内核包括第一内核进程和第二内核进程,所述第二浏览器内核包括第三内核进程。
8.如权利要求7所述的装置,其特征在于,所述第一加载请求接收模块还适于: 在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL ; 采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
9.如权利要求8所述的装置,其特征在于,所述第二浏览器内核启动模块还适于: 中止所述第一内核进程获取并缓存加载当前网页所需的资源; 启动所述第三内核进程; 采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
10.一种浏览器,包括: 第一加载请求接收模块,`适于在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求; 第二浏览器内核启动模块,适于在判定当前网页适于采用第二浏览器内核加载时,启动所述第二浏览器内核; 第二加载请求生成模块,适于在监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求; 第一网页资源获取模块,适于依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源,所述第一网页资源为所述第一浏览器内核针对所述第一加载请求所获取并缓存的网页资源; 第二网页资源获取模块,适于采用所述第一浏览器内核从服务器侧获取第二网页资源,所述第二网页资源为除所述第一网页资源外的加载当前网页所需的剩余网页资源; 网页加载模块,适于采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
【文档编号】G06F17/30GK103530329SQ201310452041
【公开日】2014年1月22日 申请日期:2013年9月27日 优先权日:2013年9月27日
【发明者】曹龙, 任寰 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司