CN103500210A - 一种进行网页加载的方法、装置和浏览器 - Google Patents
一种进行网页加载的方法、装置和浏览器 Download PDFInfo
- Publication number
- CN103500210A CN103500210A CN201310459986.4A CN201310459986A CN103500210A CN 103500210 A CN103500210 A CN 103500210A CN 201310459986 A CN201310459986 A CN 201310459986A CN 103500210 A CN103500210 A CN 103500210A
- Authority
- CN
- China
- Prior art keywords
- web page
- kernel
- browser
- browser kernel
- loading
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种进行网页加载的方法,包括:在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;依据所述URL查找当前网页匹配的浏览器内核;当所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载;其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。本发明提高了网页的加载速度。
Description
技术领域
本发明涉及浏览器的技术领域,特别是涉及一种进行网页加载的方法、一种进行网页加载的装置和一种浏览器。
背景技术
浏览器从架构上可以分为两个部分,即内核和外壳。浏览器内核是指浏览器的核心部分,可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS(JavaScript)引擎。渲染引擎主要负责取得网页的内容(包括HTML、XML、图像等)、整理信息(如加入CSS(CascadingStyle Sheets,层叠样式表单)等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。JS引擎则是解析Javascript语言,执行Javascript语言来实现网页的动态效果。
浏览器内核的种类有很多,目前比较常见的浏览器内核有微软的IE浏览器使用的Trident内核,Firefox浏览器使用的Gecko内核,苹果的Safari浏览器和Google的Chrome浏览器使用的Webkit内核,以及,Opera浏览器采用的Presto内核。
当用户通过浏览器发起一个浏览网页的请求时,浏览器通过内核从目标网站下载网页的内容,然后分析网页内容,执行脚本,计算排版,最后输出到显示器显示给用户。每个浏览器具有一个内核,不管用户通过一个浏览器进程打开多少个网页,浏览器都使用同一个内核解释执行。
但是,这种单内核浏览器有很大的局限性,因为网页往往是按照某个内核支持的网络标准制作的,对于某个特定内核支持的网络标准,其他内核可能无法很好地支持(甚至无法支持)。例如,用户使用Firefox浏览器浏览网页,Firefox浏览器的内核能够很好地支持W3C标准,因此使用该浏览器可以浏览按照W3C标准制作的网页。但如果用户想要浏览招商银行网页使用网络银行,Firefox浏览器就无法满足这个用户需求。因为招商银行网站的网络银行功能需要ActiveX插件功能,而该功能可能只有IE的内核才能支持,这样用户在使用Firefox浏览器的情况下就无法使用招商银行的网络银行功能了。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种进行网页加载的方法和相应的一种进行网页加载的装置,以及一种浏览器。
依据本发明的一个方面,提供了一种进行网页加载的方法,包括:
在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;
依据所述URL查找当前网页匹配的浏览器内核;
当所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;
采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载;
其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。
可选地,所述采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载的步骤包括:
当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求;
依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源;
采用所述第一浏览器内核从服务器侧获取第二网页资源;
采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
可选地,所述第一浏览器内核包括第一内核进程和第二内核进程,所述第二浏览器内核包括第三内核进程。
可选地,所述在浏览器侧采用所述第一浏览器内核接收当前网页的第一加载请求的步骤包括:
在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求。
可选地,所述依据所述第一加载请求开始获取并缓存第一网页资源的步骤包括:
采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
可选地,所述依据所述当前网页的URL查找当前网页匹配的浏览器内核的步骤包括:
在预置的资源映射表中查找所述URL对应的JavaScript资源。
在预置的插件映射表中查找所述JavaScript资源对应的插件对象;
确定所述插件对象适于运行的浏览器内核为当前网页匹配的浏览器内核。
可选地,所述启动所述第二浏览器内核的步骤包括:
中止所述第一内核进程获取并缓存加载当前网页所需的资源;
启动所述第三内核进程;
采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
可选地,所述当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求的步骤包括:
调用网络编程接口WinInet启动管理会话类CInternetSession;
当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的请求时,提取所述请求中的URL;
判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传输到所述第二内核进程中;
采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
可选地,所述依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源的步骤包括:
提取所述第二加载请求中当前网页的URL;
判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核进程提取所述URL对应的网页资源。
可选地,所述采用所述第一浏览器内核从服务器侧获取第二网页资源的步骤包括:
在所述第二内核进程中,将用户代理UserAgent设置为指示第二浏览器内核的标识;
通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网页资源的标识;所述服务器用于提取第二网页资源;
接收所述服务器侧返回的第二网页资源。
可选地,所述采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载的步骤包括:
在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第二网页资源传输到所述第三内核进程中;
采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网页。
根据本发明的另一方面,提供了一种进行网页加载的装置,包括:
第一加载请求接收模块,适于在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
第一网页资源获取模块,适于依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;
浏览器内核匹配模块,适于依据所述URL查找当前网页匹配的浏览器内核;
第二浏览器内核启动模块,适于在所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;
网页加载模块,适于采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载;
其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。
可选地,所述网页加载模块还适于:
当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求;
依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源;
采用所述第一浏览器内核从服务器侧获取第二网页资源;
采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
可选地,所述第一浏览器内核包括第一内核进程和第二内核进程,所述第二浏览器内核包括第三内核进程。
可选地,所述第一加载请求接收模块还适于:
在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求。
可选地,所述第一网页资源获取模块还适于:
采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
可选地,所述浏览器内核匹配模块还适于:
在预置的资源映射表中查找所述URL对应的JavaScript资源。
在预置的插件映射表中查找所述JavaScript资源对应的插件对象;
确定所述插件对象适于运行的浏览器内核为当前网页匹配的浏览器内核。
可选地,所述第二浏览器内核启动模块还适于:
中止所述第一内核进程获取并缓存加载当前网页所需的资源;
启动所述第三内核进程;
采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
可选地,所述网页加载模块还适于:
调用网络编程接口WinInet启动管理会话类CInternetSession;
当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的请求时,提取所述请求中的URL;
判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传输到所述第二内核进程中;
采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
可选地,所述网页加载模块还适于:
提取所述第二加载请求中当前网页的URL;
判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核进程提取所述URL对应的网页资源。
可选地,所述网页加载模块还适于:
在所述第二内核进程中,将用户代理UserAgent设置为指示第二浏览器内核的标识;
通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网页资源的标识;所述服务器用于提取第二网页资源;
接收所述服务器侧返回的第二网页资源。
可选地,所述网页加载模块还适于:
在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第二网页资源传输到所述第三内核进程中;
采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网页。
根据本发明的另一方面,提供了一种浏览器,包括:
第一加载请求接收模块,适于在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
第一网页资源获取模块,适于依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;
浏览器内核匹配模块,适于依据所述URL查找当前网页匹配的浏览器内核;
第二浏览器内核启动模块,适于在所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;
网页加载模块,适于采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载;
其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。
本发明中,当判定当前网页适于采用第二浏览器内核加载时启动第二浏览器内核,进行浏览器内核的切换,对于原浏览器内核进行请求时获取的已缓存的网页资源的进行重复使用,并请求获取到未进行缓存的网页资源,然后通过IPC将获取的全部网页资源发送到第二浏览器内核中进行渲染加载,避免了重复获取网页资源,提高了网页的加载速度。
本发明中,在网页进行渲染前进行适配浏览器内核的判断,通过使用了资源映射表查找当前网页URL对应的JavaScript资源,在通过插件映射表查找该JavaScript资源对应的插件对象,最后确定适配的浏览器内核,提高了采用浏览器内核加载网页的适配程度,提高了加载网页的效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种进行网页加载的方法实施例1的步骤流程图;
图2示出了根据本发明一个实施例的一种进行网页加载的方法实施例2的步骤流程图;以及,
图3示出了根据本发明一个实施例的一种进行网页加载的装置实施例的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明一个实施例的一种进行网页加载的方法实施例1的步骤流程图,具体可以包括以下步骤:
步骤101,在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
步骤102,依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;
步骤103,依据所述URL查找当前网页匹配的浏览器内核;
步骤104,当所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;
步骤105,采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载;
其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。
本发明中,当判定当前网页适于采用第二浏览器内核加载时启动第二浏览器内核,进行浏览器内核的切换,对于原浏览器内核进行请求时获取的已缓存的网页资源的进行重复使用,并请求获取到未进行缓存的网页资源,然后通过IPC将获取的全部网页资源发送到第二浏览器内核中进行渲染加载,避免了重复获取网页资源,提高了网页的加载速度。
参照图2,示出了根据本发明一个实施例的一种进行网页加载的方法实施例2的步骤流程图,具体可以包括以下步骤:
步骤201,在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
需要说明的是,浏览器可以包括两个或两个以上的浏览器内核,第一浏览器内核可以为浏览器当前默认使用的浏览器内核,该默认的浏览器内核可以是系统设置的,也可以使用户设置的,具体可以是Webkit内核等高性能的浏览器内核。当然,还可以是Gecko内核、Presto内核等等,本发明实施例对此不加以限制。
当前网页的第一加载请求可以是指用户发出的加载某个网页的指示。例如,用户可以通过点击某链接来打开一个网页,或者在地址栏输入网址来打开一个网页等等。当用户点击某链接的指示时,就相当于接收到了用户加载网页的加载请求;同样,当在地址栏输入某网址并点击确定按钮或按下回车键时,也相当于接收到了用户加载网页的加载请求。
其中,加载请求的内容可以包括用户请求加载的网页的标识和/或网页的特征。网页标识可以是能够代表一个唯一确定的网页的信息,例如统一资源标识符(Uniform Resource Identifier,URI),统一资源标识符又具体可以包括统一资源定位符(Uniform Resource Locator,URL),或者统一资源名称(Uniform Resource Name,URN)等等。
在具体实现中,第一浏览器内核可以包括第一内核进程和第二内核进程。
内核进程可以是浏览器执行程序和分配资源的单位。
在本发明的一种优选实施例中,步骤201具体可以包括如下子步骤:
子步骤S11,在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求。
具体实现中,第一内核进程可以获取当前网页的URL,当然也可以是获取当前网页的URI和/或URN等网页标识,本发明实施例对此不加限制。
步骤202,依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;
当接收到用户加载网页的加载请求时,可以通过第一内核进程进行正常的网页加载。
在本发明的一种优选实施例中,步骤202具体可以包括如下子步骤:
子步骤S21,采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
具体而言,可以采用第一内核进程直接访问URL加载当前网页。当然,也可以采用URI和/或URN等网页标识进行当前网页的加载。
以采用第一内核进程访问URL加载当前网页为例,加载网页的过程可以如下:
1.当检测到用户输入网址(假设是个HTML页面,并且是第一次访问)时,浏览器向服务器发出请求加载该网址指示的网页,服务器返回对应的HTML文本;
2.浏览器开始载入HTML文本的源代码,当检测到<head>标签内有一个<link>标签时,则需要引用外部CSS文件;
3.浏览器向服务器发出CSS文件的请求,服务器返回对应的CSS文件;
4.浏览器继续载入HTML文本中<body>部分的代码,此时CSS文件已经接收到,可以开始渲染网页;
5.当浏览器在HTML文本中检测到一个<img>标签时,需要引用了一张图片,则向服务器发送加载图片的请求。此时浏览器不会等待图片下载完,而是继续渲染后面的代码;
6.服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排布,因此浏览器需要重新渲染这部分代码;
7.当浏览器检测到一个包含一行JavaScript代码的<script>标签时,则立即运行;
8.采用JavaScript脚本执行了上述语句,其命令浏览器隐藏掉代码中的某个<div>(style.display=”none”),由于缺少了<div>元素,浏览器需要重新渲染这部分代码;
9.当检测到</HTML>时,渲染完成;
10.当用户点击界面中的“换肤”按钮,JavaScript让浏览器换了<link>标签的CSS路径;
11.浏览器采用<div>、<span>、<ul>、<li>等各元素,并向服务器请求新的CSS文件,重新渲染页面。
在通过第一内核进程进行正常的网页加载,可以判断当前请求加载的网页所适配的浏览器内核。
步骤203,依据所述URL查找当前网页匹配的浏览器内核;
在具体实现中,获知用户请求的网页与浏览器内核之间的适配关系(即当前网页适于采用哪个浏览器内核进行加载)的方法可以有多种。
其中一种方法,可以根据从请求信息获得的内容以及预置规则,获知用户请求的网页与所述浏览器内核之间的适配关系。
具体而言,预置规则可以包括特定适配规则、通用适配规则和/或不适配规则,在请求加载网页的过程中,可以根据特定适配规则、通用适配规则和/或不适配规则,获知用户请求的网页与浏览器内核之间的适配关系。其中,特定适配规则可以包括网页与内核之间的适配关系,通用适配规则可以包括为用户选择平均加载速度最快的浏览器内核或为用户选择对网络标准支持最好的浏览器内核,不适配规则可以包括网页与内核之间的不适配关系。
由于浏览器还会根据接收到的加载请求向对应的服务器发送关于加载网页的加载请求信息,服务器会针对加载请求信息返回响应信息,在响应信息中会携带一些网页的页面内容等信息,因此在此种情形下,还可以根据从服务器返回的针对加载请求信息的响应信息获得的内容以及预置规则,重新获知与用户请求的网页适配的浏览器内核;如果重新获知的适配的浏览器内核与此前基于请求信息获知的适配浏览器内核不同,则选择重新获知的适配浏览器内核加载用户请求的网页。
另外一种方法中,由于浏览器还会根据接收到的加载请求向对应的服务器发送关于加载网页的加载请求信息,服务器会针对加载请求信息返回响应信息,在响应信息中会携带一些网页的页面内容等信息,因此在该方法中,可以直接根据从服务器返回的针对加载请求信息返回的响应信息获取的内容以及预置规则,获知用户请求的网页与浏览器内核之间的适配关系。
当然,也可以根据从加载请求获得的内容、从服务器返回的针对加载请求信息返回的响应信息获取的内容以及预置规则,共同获知用户请求的网页与浏览器内核之间的适配关系。
另外,在使用上述各实施例提供的方法加载网页时,还可以对加载用户请求的网页的情况进行检测;如果出现符合预置内核切换条件的现象,则根据预置规则重新获知与该网页适配的浏览器内核;选择重新获知的适配的浏览器内核加载用户请求的网页。其中,符合预置内核切换条件的现象可以包括:在加载过程中检测所加载速度较慢,或者在加载完毕后检测到网页没有正常显示,等等。
在本发明的一种优选实施例中,所述步骤203具体可以包括如下子步骤:
子步骤S31,在预置的资源映射表中查找所述URL对应的JavaScript资源。
子步骤S32,在预置的插件映射表中查找所述JavaScript资源对应的插件对象;
子步骤S33,确定所述插件对象适于运行的浏览器内核为当前网页匹配的浏览器内核。
加载网页需要的页面资源可以包括HTML页面中的JavaScript、css、图片和/或字体文件等资源。JavaScript、css、图片和/或字体文件等页面资源可以用于页面的渲染。
其中,JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。解释语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而且由于每次重新加载都会重新解译,加载后,有些代码会延迟至运行时才解译,甚至会多次解译,所以网页加载的速度较慢。
因此,为了提高网页加载的效率,可以调用JavaScript所适配的浏览器内核进行当前网页的加载。例如,各浏览器平均加载网页速度可能各不相同,根据在同等条件下的测试,Presto内核执行同等JavaScript所需的时间仅有Trident和Gecko内核的约1/3。
在具体实现中,可以在浏览器或者服务器预置资源映射表,资源映射表中可以记载加载不同网页(具体可以采用URL进行标识不同的网页,也可以采用URI和/或URN标识不同的网页)所对应的页面资源,具体可以包括JavaScript。
可以在浏览器或服务器预置插件映射表,插件映射表中可以记载不同JavaScript所对应启动的插件对象。在具体实现中,使用第一浏览器内核进行网页资源的请求后获得网页资源,并返回到浏览器侧缓存中的网页资源数据,例如HTML文本、图片、视频元素,以及其中嵌入的例如JavaScript或者插件对象,这些数据会被浏览器在网页加载时进行渲染后进行显示。在解析这些网页资源进行渲染前,可以查询由浏览器进行维护的JavaScript的名称。这些维护的JavaScript可以用于与不同的网页进行匹配,即在不同网页的URL会对应不同的JavaScript的匹配项。
还可以在在浏览器或者服务器预置浏览器内核映射表。浏览器内核映射表中可以记载加载不同插件对象所适配的浏览器内核。具体实现中,可以对网页资源中的插件对象进行加载和初始化时的监听:对于网页中的<embed>元素,其中的CLSID(指系统对于不同的应用程序,文件类型,OLE对象,特殊文件夹以及各种系统组件分配一个唯一表示的ID代码)会被作为网页资源的一部分而被识别到,CLSID是网页插件对象的唯一识别码。对于匹配到指定的插件对象时,就切换到对应的浏览器内核,以使用该浏览器内核实现网页的再渲染和加载。
例如,在预置资源映射表中查找到在当前网页下点击进行文件下载需要激活一JavaScript脚本,此JavaScript脚本会对应启动一下载工具,此下载工具更适合运行在Trident内核的浏览器下,则获知适配关系为当前网页适于采用Trident内核进行加载。
需要说明的是,资源映射表、插件映射表、浏览器内核映射表中的一个、两个或三个可以合并在同一个映射表中。
相对应地,若在浏览器预置资源映射表、插件映射表和/或浏览器内核映射表,则可以在本地进行对应的查找。若在服务器预置资源映射表、插件映射表和/或浏览器内核映射表,则可以发送对应的查找请求,并接收服务器返回的信息。
步骤204,当所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;
一般而言,第二浏览器内核可以为浏览器内置的除第一浏览器内核外的其他浏览器内核,可以在某些情况适配当前网页的加载,可以为Trident内核(即IE内核),包括IE-com内核(兼容的IE内核)和/或IE-stand内核。当然,还可以是Gecko内核、Presto内核等等,本发明实施例对此不加以限制。
特别地,当当前网页适于采用第一浏览器内核进行加载时,可以直接采用第一浏览器内核进行当前网页的加载。
在实际应用中,第二浏览器内核可以包括第三内核进程。需要说明的是,一个浏览器可以运行一个或多个内核进程,并不仅仅限制在第一内核进程、第二内核进程和第三内核进程。
在本发明的一种优选实施例中,步骤204具体可以包括如下子步骤:
子步骤S41,中止所述第一内核进程获取并缓存加载当前网页所需的资源;
子步骤S42,启动所述第三内核进程;
子步骤S43,采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
在确定进行浏览器内核转换后,会停止当前浏览器内核(即第一浏览器内核)加载当前网页。当前通过第一内核进程所能加载到的网页资源可以称之为第一网页资源。需要说明的是,何时获知用户请求的网页与浏览器内核之间的适配关系,何时就中止采用第一内核进程获取并缓存加载当前网页所需的资源。
第一内核进程可以将当前网页URL传递到第三内核进程中,也可以将当前网页的URI和/或URN等网页标识传递到第三内核进程中,本发明实施例对此不加以限制。
步骤205,当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求;
在切换到第二浏览器内核后,可以通过第二浏览内核使用当前网页的URL去发起一个新的浏览器导航。
在本发明的一种优选实施例中,所述步骤205具体可以包括如下子步骤:
子步骤S51:调用网络编程接口WinInet启动管理会话类CInternetSession;
子步骤S52:当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的请求时,提取所述请求中的URL;
子步骤S53:判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传输到所述第二内核进程中;
子步骤S54:采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
在第三内核进程中注册监听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请求。
步骤206,依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源;
所述第一网页资源为所述第一浏览器内核针对所述第一加载请求所获取并缓存的网页资源;
第一网页资源已存储在本地的缓存中,为避免重复请求网页资源,进一步加快网页资源的请求,可以直接采用该第一网页资源进行当前网页的加载。
在本发明的一种优选实施例中,所述步骤206具体可以包括如下子步骤:
子步骤S51,提取所述第二加载请求中当前网页的URL;
子步骤S52,判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核进程提取所述URL对应的网页资源。
第一浏览器内核中会在向该URL对应的服务器请求网页资源之前,会在本地的缓存中的资源的查询,如果有已经下载的该URL对应的资源,就不会再向该服务器进行请求,而是直接使用该已经缓存的资源。
步骤207,采用所述第一浏览器内核从服务器侧获取第二网页资源;
其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。
在中止第一内核进程获取并缓存加载当前网页所需的资源时,第一内核进程所获取的第一网页资源可能并不是加载当前网页所需的全部网页资源,对于加载当前网页所需的剩余网页资源,可以向服务器发送请求获取。
在本发明的一种优选实施例中,所述步骤207具体可以包括如下子步骤:
子步骤S71,在所述第二内核进程中,将用户代理UserAgent设置为指示第二浏览器内核的标识;
子步骤S72,通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网页资源的标识;所述服务器用于提取第二网页资源;
子步骤S73,接收所述服务器侧返回的第二网页资源。
对于没有下载的该URL对应的网页资源(即第二网页资源),可以生成一个基于第一浏览器内核架构的请求去请求尚未没有下载的网页资源。在具体实现中,对于已经下载的网页资源(即第一网页资源)和没有下载的网页资源,可以使用不同的标记,将这两种网页资源进行标记分开。但是该基于第一浏览器内核架构的请求中的用户代理UserAgent的参数是需要设置为指示第二浏览器内核的标识。
当然,对于获取到的第二网页资源,也可以存储在本地的缓存中。
步骤208,采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
第一网页资源和第二网页资源可以为加载当前网页所需的全部资源,当第二浏览器内核将获取到第一网页资源和第二网页资源后,可以采用第二浏览器内核进行当前网页的渲染。
在本发明的一种优选实施例中,所述步骤208具体可以包括如下子步骤:
子步骤S81,在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第二网页资源传输到所述第三内核进程中;
子步骤S82,采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网页。
具体实现中,通过IPC通信将该已经缓存的网页资源(第一网页资源和第二网页资源)传输到第三内核进程,第二浏览器内核的read函数获取该已经缓存的网页资源,并进行后续的渲染和显示。
本发明中,当判定当前网页适于采用第二浏览器内核加载时启动第二浏览器内核,进行浏览器内核的切换,对于原浏览器内核进行请求时获取的已缓存的网页资源的进行重复使用,并请求获取到未进行缓存的网页资源,然后通过IPC将获取的全部网页资源发送到第二浏览器内核中进行渲染加载,避免了重复获取网页资源,提高了网页的加载速度。
本发明中,在网页进行渲染前进行适配浏览器内核的判断,通过使用了资源映射表查找当前网页URL对应的JavaScript资源,在通过插件映射表查找该JavaScript资源对应的插件对象,最后确定适配的浏览器内核,提高了采用浏览器内核加载网页的适配程度,提高了加载网页的效率。
参照图3,示出了根据本发明一个实施例的一种进行网页加载的装置实施例的结构框图,具体可以包括如下模块:
第一加载请求接收模块301,适于在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
第一网页资源获取模块302,适于依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;
浏览器内核匹配模块303,适于依据所述URL查找当前网页匹配的浏览器内核;
第二浏览器内核启动模块304,适于在所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;
网页加载模块305,适于采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载;
其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。
在本发明的一种优选实施例中,所述网页加载模块还适于:
当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求;
依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源;
采用所述第一浏览器内核从服务器侧获取第二网页资源;
采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
在本发明的一种优选实施例中,所述第一浏览器内核包括第一内核进程和第二内核进程,所述第二浏览器内核包括第三内核进程。
在本发明的一种优选实施例中,所述第一加载请求接收模块还适于:
在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求。
在本发明的一种优选实施例中,所述第一网页资源获取模块还适于:
采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
在本发明的一种优选实施例中,所述浏览器内核匹配模块还适于:
在预置的资源映射表中查找所述URL对应的JavaScript资源。
在预置的插件映射表中查找所述JavaScript资源对应的插件对象;
确定所述插件对象适于运行的浏览器内核为当前网页匹配的浏览器内核。
在本发明的一种优选实施例中,所述第二浏览器内核启动模块还适于:
中止所述第一内核进程获取并缓存加载当前网页所需的资源;
启动所述第三内核进程;
采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
在本发明的一种优选实施例中,所述网页加载模块还适于:
调用网络编程接口WinInet启动管理会话类CInternetSession;
当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的请求时,提取所述请求中的URL;
判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传输到所述第二内核进程中;
采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
在本发明的一种优选实施例中,所述网页加载模块还适于:
提取所述第二加载请求中当前网页的URL;
判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核进程提取所述URL对应的网页资源。
在本发明的一种优选实施例中,所述网页加载模块还适于:
在所述第二内核进程中,将用户代理UserAgent设置为指示第二浏览器内核的标识;
通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网页资源的标识;所述服务器用于提取第二网页资源;
接收所述服务器侧返回的第二网页资源。
在本发明的一种优选实施例中,所述网页加载模块还适于:
在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第二网页资源传输到所述第三内核进程中;
采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网页。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明还提供了一种浏览器,具体可以包括如下模块:
第一加载请求接收模块,适于在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
第一网页资源获取模块,适于依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;
浏览器内核匹配模块,适于依据所述URL查找当前网页匹配的浏览器内核;
第二浏览器内核启动模块,适于在所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;
网页加载模块,适于采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载;
其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。
在本发明的一种优选实施例中,所述网页加载模块还适于:
当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求;
依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源;
采用所述第一浏览器内核从服务器侧获取第二网页资源;
采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
在本发明的一种优选实施例中,所述第一浏览器内核包括第一内核进程和第二内核进程,所述第二浏览器内核包括第三内核进程。
在本发明的一种优选实施例中,所述第一加载请求接收模块还适于:
在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求。
在本发明的一种优选实施例中,所述第一网页资源获取模块还适于:
采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
在本发明的一种优选实施例中,所述浏览器内核匹配模块还适于:
在预置的资源映射表中查找所述URL对应的JavaScript资源。
在预置的插件映射表中查找所述JavaScript资源对应的插件对象;
确定所述插件对象适于运行的浏览器内核为当前网页匹配的浏览器内核。
在本发明的一种优选实施例中,所述第二浏览器内核启动模块还适于:
中止所述第一内核进程获取并缓存加载当前网页所需的资源;
启动所述第三内核进程;
采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
在本发明的一种优选实施例中,所述网页加载模块还适于:
调用网络编程接口WinInet启动管理会话类CInternetSession;
当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的请求时,提取所述请求中的URL;
判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传输到所述第二内核进程中;
采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
在本发明的一种优选实施例中,所述网页加载模块还适于:
提取所述第二加载请求中当前网页的URL;
判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核进程提取所述URL对应的网页资源。
在本发明的一种优选实施例中,所述网页加载模块还适于:
在所述第二内核进程中,将用户代理UserAgent设置为指示第二浏览器内核的标识;
通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网页资源的标识;所述服务器用于提取第二网页资源;
接收所述服务器侧返回的第二网页资源。
在本发明的一种优选实施例中,所述网页加载模块还适于:
在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第二网页资源传输到所述第三内核进程中;
采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网页。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的进行网页加载的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明实施例公开了A1、一种进行网页加载的方法,包括:
在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;
依据所述URL查找当前网页匹配的浏览器内核;
当所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;
采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载;
其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。
A2、如A1所述的方法,其特征在于,所述采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载的步骤包括:
当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求;
依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源;
采用所述第一浏览器内核从服务器侧获取第二网页资源;
采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
A3、如A1或A2所述的方法,其特征在于,所述第一浏览器内核包括第一内核进程和第二内核进程,所述第二浏览器内核包括第三内核进程。
A4、如A3所述的方法,其特征在于,所述在浏览器侧采用所述第一浏览器内核接收当前网页的第一加载请求的步骤包括:
在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求。
A5、如A3所述的方法,其特征在于,所述依据所述第一加载请求开始获取并缓存第一网页资源的步骤包括:
采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
A6、如A1或A4或A5所述的方法,其特征在于,所述依据所述当前网页的URL查找当前网页匹配的浏览器内核的步骤包括:
在预置的资源映射表中查找所述URL对应的JavaScript资源。
在预置的插件映射表中查找所述JavaScript资源对应的插件对象;
确定所述插件对象适于运行的浏览器内核为当前网页匹配的浏览器内核。
A7、如A4或A5所述的方法,其特征在于,所述启动所述第二浏览器内核的步骤包括:
中止所述第一内核进程获取并缓存加载当前网页所需的资源;
启动所述第三内核进程;
采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
A8、如A7所述的方法,其特征在于,所述当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求的步骤包括:
调用网络编程接口WinInet启动管理会话类CInternetSession;
当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的请求时,提取所述请求中的URL;
判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传输到所述第二内核进程中;
采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
A9、如A8所述的方法,其特征在于,所述依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源的步骤包括:
提取所述第二加载请求中当前网页的URL;
判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核进程提取所述URL对应的网页资源。
A10、如A8所述的方法,其特征在于,所述采用所述第一浏览器内核从服务器侧获取第二网页资源的步骤包括:
在所述第二内核进程中,将用户代理UserAgent设置为指示第二浏览器内核的标识;
通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网页资源的标识;所述服务器用于提取第二网页资源;
接收所述服务器侧返回的第二网页资源。
A11、如A3所述的方法,其特征在于,所述采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载的步骤包括:
在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第二网页资源传输到所述第三内核进程中;
采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网页。
本发明实施例还公开了B12、一种进行网页加载的装置,包括:
第一加载请求接收模块,适于在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
第一网页资源获取模块,适于依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;
浏览器内核匹配模块,适于依据所述URL查找当前网页匹配的浏览器内核;
第二浏览器内核启动模块,适于在所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;
网页加载模块,适于采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载;
其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。
B13、如B12所述的装置,其特征在于,所述网页加载模块还适于:
当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求;
依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源;
采用所述第一浏览器内核从服务器侧获取第二网页资源;
采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
B14、如B12或B13所述的装置,其特征在于,所述第一浏览器内核包括第一内核进程和第二内核进程,所述第二浏览器内核包括第三内核进程。
B15、如B14所述的装置,其特征在于,所述第一加载请求接收模块还适于:
在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求。
B16、如B14所述的装置,其特征在于,所述第一网页资源获取模块还适于:
采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
B17、如B12或B15或B16所述的装置,其特征在于,所述浏览器内核匹配模块还适于:
在预置的资源映射表中查找所述URL对应的JavaScript资源。
在预置的插件映射表中查找所述JavaScript资源对应的插件对象;
确定所述插件对象适于运行的浏览器内核为当前网页匹配的浏览器内核。
B18、如B15或B16所述的装置,其特征在于,所述第二浏览器内核启动模块还适于:
中止所述第一内核进程获取并缓存加载当前网页所需的资源;
启动所述第三内核进程;
采用所述第一内核进程将当前网页的URL传输给所述第三内核进程。
B19、如B18所述的装置,其特征在于,所述网页加载模块还适于:
调用网络编程接口WinInet启动管理会话类CInternetSession;
当在所述管理会话类CInternetSession中监听到所述第二内核进程加载网页的请求时,提取所述请求中的URL;
判断所述请求中的URL与当前网页的URL是否相同;若是,则将当前网页的URL传输到所述第二内核进程中;
采用所述第二内核进程针对当前网页的URL生成当前网页的第二加载请求。
B20、如B19所述的装置,其特征在于,所述网页加载模块还适于:
提取所述第二加载请求中当前网页的URL;
判断浏览器缓存中是否有所述URL对应的网页资源;若是,则采用所述第二内核进程提取所述URL对应的网页资源。
B21、如B20所述的装置,其特征在于,所述网页加载模块还适于:
在所述第二内核进程中,将用户代理UserAgent设置为指示第二浏览器内核的标识;
通过访问当前网页的URL向服务器侧请求加载当前网页;所述请求中包括第二网页资源的标识;所述服务器用于提取第二网页资源;
接收所述服务器侧返回的第二网页资源。
B22、如B14所述的装置,其特征在于,所述网页加载模块还适于:
在所述第二内核进程中采用进程间通信IPC分别将所述第一网页资源和所述第二网页资源传输到所述第三内核进程中;
采用所述第三内核进程采用所述第一网页资源和所述第二网页资源渲染当前网页。
本发明实施例还公开了C23、一种浏览器,包括B12至B22中任一项所述的进行网页加载的装置。
Claims (10)
1.一种进行网页加载的方法,包括:
在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;
依据所述URL查找当前网页匹配的浏览器内核;
当所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;
采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载;
其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。
2.如权利要求1所述的方法,其特征在于,所述采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载的步骤包括:
当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求;
依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源;
采用所述第一浏览器内核从服务器侧获取第二网页资源;
采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
3.如权利要求1或2所述的方法,其特征在于,所述第一浏览器内核包括第一内核进程和第二内核进程,所述第二浏览器内核包括第三内核进程。
4.如权利要求3所述的方法,其特征在于,所述在浏览器侧采用所述第一浏览器内核接收当前网页的第一加载请求的步骤包括:
在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求。
5.如权利要求3所述的方法,其特征在于,所述依据所述第一加载请求开始获取并缓存第一网页资源的步骤包括:
采用所述第一内核进程访问所述URL开始获取并缓存加载当前网页所需的资源。
6.一种进行网页加载的装置,包括:
第一加载请求接收模块,适于在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
第一网页资源获取模块,适于依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;
浏览器内核匹配模块,适于依据所述URL查找当前网页匹配的浏览器内核;
第二浏览器内核启动模块,适于在所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;
网页加载模块,适于采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载;
其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。
7.如权利要求6所述的装置,其特征在于,所述网页加载模块还适于:
当监听到所述第二浏览器内核请求加载当前网页时,采用所述第一浏览器内核生成当前网页的第二加载请求;
依据所述第二加载请求采用所述第一浏览器内核获取第一网页资源;
采用所述第一浏览器内核从服务器侧获取第二网页资源;
采用所述第一浏览器内核将所述第一网页资源和第二网页资源传输到所述第二浏览器内核进行当前网页的加载。
8.如权利要求6或7所述的装置,其特征在于,所述第一浏览器内核包括第一内核进程和第二内核进程,所述第二浏览器内核包括第三内核进程。
9.如权利要求8所述的装置,其特征在于,所述第一加载请求接收模块还适于:
在浏览器侧通过所述第一内核进程接收当前网页的第一加载请求。
10.一种浏览器,包括:
第一加载请求接收模块,适于在浏览器侧采用第一浏览器内核接收当前网页的第一加载请求;所述第一加载请求中包括当前网页的URL;
第一网页资源获取模块,适于依据所述第一加载请求开始获取并缓存第一网页资源;所述第一网页资源为加载当前网页所需的网页资源;
浏览器内核匹配模块,适于依据所述URL查找当前网页匹配的浏览器内核;
第二浏览器内核启动模块,适于在所述当前网页匹配的浏览器内核为第二浏览器内核时,启动所述第二浏览器内核;
网页加载模块,适于采用所述第二浏览器内核基于所述第一浏览器内核传输的第一网页资源和第二网页资源,进行当前网页的加载;
其中,所述第二网页资源为所述第一浏览器内核从服务器侧获取的,除所述第一网页资源外的加载当前网页所需的剩余网页资源。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310459986.4A CN103500210A (zh) | 2013-09-27 | 2013-09-27 | 一种进行网页加载的方法、装置和浏览器 |
US15/025,219 US20160232252A1 (en) | 2013-09-27 | 2014-09-12 | Method for loading webpage, device and browser thereof |
PCT/CN2014/086428 WO2015043383A1 (zh) | 2013-09-27 | 2014-09-12 | 一种进行网页加载的方法、装置和浏览器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310459986.4A CN103500210A (zh) | 2013-09-27 | 2013-09-27 | 一种进行网页加载的方法、装置和浏览器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103500210A true CN103500210A (zh) | 2014-01-08 |
Family
ID=49865420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310459986.4A Pending CN103500210A (zh) | 2013-09-27 | 2013-09-27 | 一种进行网页加载的方法、装置和浏览器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160232252A1 (zh) |
CN (1) | CN103500210A (zh) |
WO (1) | WO2015043383A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468834A (zh) * | 2014-12-26 | 2015-03-25 | 北京奇虎科技有限公司 | 进行Cookie数据处理的方法、装置和浏览器客户端 |
WO2015043383A1 (zh) * | 2013-09-27 | 2015-04-02 | 北京奇虎科技有限公司 | 一种进行网页加载的方法、装置和浏览器 |
CN106131109A (zh) * | 2016-06-08 | 2016-11-16 | 北京京东尚科信息技术有限公司 | 基于http协议实现app内嵌网页中任意资源缓存的方法和装置 |
CN106354484A (zh) * | 2015-07-16 | 2017-01-25 | 中兴通讯股份有限公司 | 一种浏览器兼容方法及浏览器 |
CN106682037A (zh) * | 2015-11-11 | 2017-05-17 | 百度在线网络技术(北京)有限公司 | 一种操作页面中的图片的方法和装置 |
CN107704615A (zh) * | 2017-10-24 | 2018-02-16 | 北京有字库网络科技有限公司 | 基于中文字体子集化的网页字体显示方法及系统 |
CN107844332A (zh) * | 2016-09-20 | 2018-03-27 | 天脉聚源(北京)科技有限公司 | 一种移动网页加载外部资源的方法和系统 |
CN108334379A (zh) * | 2018-01-05 | 2018-07-27 | 北京明略软件系统有限公司 | 一种页面扩展功能的实现方法及实现装置 |
CN109992326A (zh) * | 2019-03-28 | 2019-07-09 | 武汉达梦数据库有限公司 | 一种数据访问方法以及相应的终端 |
CN111898152A (zh) * | 2020-05-07 | 2020-11-06 | 北京五八信息技术有限公司 | 一种页面展示方法、电子设备及存储介质 |
CN114942911A (zh) * | 2022-06-16 | 2022-08-26 | 平安国际融资租赁有限公司 | 一种文件浏览方法、装置、设备及存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107045501A (zh) * | 2016-02-05 | 2017-08-15 | 腾讯科技(深圳)有限公司 | 一种网页访问方法和装置 |
CN107016021A (zh) * | 2016-11-08 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 页面加载方法、客户端、系统和电子设备 |
US11188353B2 (en) * | 2018-07-12 | 2021-11-30 | Vmware, Inc. | Runtime extension system for bundled web application |
CN110795650A (zh) * | 2019-09-18 | 2020-02-14 | 平安银行股份有限公司 | 网页开启方法、装置及计算机可读存储介质 |
CN111273965B (zh) * | 2020-02-17 | 2021-10-29 | 支付宝(杭州)信息技术有限公司 | 一种容器应用启动方法、系统、装置及电子设备 |
CN113778349A (zh) * | 2020-06-10 | 2021-12-10 | 北京奇虎科技有限公司 | 页面的打印方法、装置、系统、设备及存储介质 |
CN112286592A (zh) * | 2020-10-29 | 2021-01-29 | 平安普惠企业管理有限公司 | 资源数据的加载方法及装置、存储介质、计算机设备 |
CN112612982A (zh) * | 2021-01-05 | 2021-04-06 | 上海哔哩哔哩科技有限公司 | 网页预加载方法、装置及计算机设备 |
CN114217866B (zh) * | 2021-11-08 | 2023-09-19 | 阿里健康科技(中国)有限公司 | 小程序的使用方法及装置和电子设备 |
CN117235398B (zh) * | 2023-11-15 | 2024-02-23 | 深圳万物安全科技有限公司 | 网页加载方法、设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655863A (zh) * | 2009-04-24 | 2010-02-24 | 北京搜狗科技发展有限公司 | 在浏览器中加载网页的方法及浏览器 |
CN102467565A (zh) * | 2010-11-19 | 2012-05-23 | 奇智软件(北京)有限公司 | 一种浏览器内核切换的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100404285B1 (ko) * | 2000-02-09 | 2003-11-03 | (주) 고미드 | 2차원/3차원 겸용 웹 브라우징 방법 및 이를 저장하고 있는 기록매체 |
CN102156709B (zh) * | 2011-02-28 | 2020-01-03 | 奇智软件(北京)有限公司 | 一种浏览器引擎模式的切换方法 |
CN103500210A (zh) * | 2013-09-27 | 2014-01-08 | 北京奇虎科技有限公司 | 一种进行网页加载的方法、装置和浏览器 |
CN103530329A (zh) * | 2013-09-27 | 2014-01-22 | 北京奇虎科技有限公司 | 一种进行网页加载的方法、装置和浏览器 |
-
2013
- 2013-09-27 CN CN201310459986.4A patent/CN103500210A/zh active Pending
-
2014
- 2014-09-12 WO PCT/CN2014/086428 patent/WO2015043383A1/zh active Application Filing
- 2014-09-12 US US15/025,219 patent/US20160232252A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655863A (zh) * | 2009-04-24 | 2010-02-24 | 北京搜狗科技发展有限公司 | 在浏览器中加载网页的方法及浏览器 |
CN102467565A (zh) * | 2010-11-19 | 2012-05-23 | 奇智软件(北京)有限公司 | 一种浏览器内核切换的方法 |
Non-Patent Citations (1)
Title |
---|
ENET硅谷动力: "eNet硅谷动力,双核切换无需重复下载!搜狗浏览器双核共享缓存", 《ENET硅谷动力》, 16 October 2012 (2012-10-16) * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015043383A1 (zh) * | 2013-09-27 | 2015-04-02 | 北京奇虎科技有限公司 | 一种进行网页加载的方法、装置和浏览器 |
CN104468834A (zh) * | 2014-12-26 | 2015-03-25 | 北京奇虎科技有限公司 | 进行Cookie数据处理的方法、装置和浏览器客户端 |
CN104468834B (zh) * | 2014-12-26 | 2017-12-26 | 北京奇虎科技有限公司 | 进行Cookie数据处理的方法、装置和浏览器客户端 |
CN106354484A (zh) * | 2015-07-16 | 2017-01-25 | 中兴通讯股份有限公司 | 一种浏览器兼容方法及浏览器 |
CN106682037A (zh) * | 2015-11-11 | 2017-05-17 | 百度在线网络技术(北京)有限公司 | 一种操作页面中的图片的方法和装置 |
CN106131109A (zh) * | 2016-06-08 | 2016-11-16 | 北京京东尚科信息技术有限公司 | 基于http协议实现app内嵌网页中任意资源缓存的方法和装置 |
CN107844332A (zh) * | 2016-09-20 | 2018-03-27 | 天脉聚源(北京)科技有限公司 | 一种移动网页加载外部资源的方法和系统 |
CN107704615A (zh) * | 2017-10-24 | 2018-02-16 | 北京有字库网络科技有限公司 | 基于中文字体子集化的网页字体显示方法及系统 |
CN108334379A (zh) * | 2018-01-05 | 2018-07-27 | 北京明略软件系统有限公司 | 一种页面扩展功能的实现方法及实现装置 |
CN109992326A (zh) * | 2019-03-28 | 2019-07-09 | 武汉达梦数据库有限公司 | 一种数据访问方法以及相应的终端 |
CN111898152A (zh) * | 2020-05-07 | 2020-11-06 | 北京五八信息技术有限公司 | 一种页面展示方法、电子设备及存储介质 |
CN114942911A (zh) * | 2022-06-16 | 2022-08-26 | 平安国际融资租赁有限公司 | 一种文件浏览方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20160232252A1 (en) | 2016-08-11 |
WO2015043383A1 (zh) | 2015-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103500210A (zh) | 一种进行网页加载的方法、装置和浏览器 | |
CN103530329A (zh) | 一种进行网页加载的方法、装置和浏览器 | |
KR101824222B1 (ko) | 동적 컨텐츠 및 스테일 컨텐츠를 포함하는 웹사이트들의 고속 렌더링 | |
US8122104B2 (en) | Method and system for providing XML-based asynchronous and interactive feeds for web applications | |
US7698256B1 (en) | History support for stateless Javascript Web client | |
US9292253B2 (en) | Methods and apparatus for voiced-enabling a web application | |
US9400633B2 (en) | Methods and apparatus for voiced-enabling a web application | |
US9781262B2 (en) | Methods and apparatus for voice-enabling a web application | |
US8825637B1 (en) | Recording user actions | |
US10157612B2 (en) | Methods and apparatus for voice-enabling a web application | |
CN103500194A (zh) | 一种进行网页加载的方法、装置和浏览器 | |
CN109815430B (zh) | 请求处理方法、装置、数据处理服务器及可读存储介质 | |
CN101876897A (zh) | 用于在Web浏览器上处理Widget的系统和方法 | |
US20140047359A1 (en) | Mechanism for adding new search modes to user agent | |
US20210209526A1 (en) | Landing page processing method, device and medium | |
CN102096582A (zh) | 离线小工具集成开发环境 | |
US9292252B2 (en) | Methods and apparatus for voiced-enabling a web application | |
US10594764B2 (en) | Request cache to improve web applications performance | |
CN103559097A (zh) | 一种浏览器中进程间通信的方法、装置和浏览器 | |
CN102981848A (zh) | 网页主体元素处理浏览器和方法 | |
CN113330432A (zh) | 搜索结果中列出的内容的异步预测性缓存 | |
US10846361B2 (en) | User-specific customization of web pages | |
US10095791B2 (en) | Information search method and apparatus | |
JP2009289206A (ja) | ユニフォームリソースロケータ情報を書き換えるプログラム | |
KR101616063B1 (ko) | 컨텐츠 서버 레이턴시 결정 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140108 |
|
RJ01 | Rejection of invention patent application after publication |