CN102929944A - Ie内核浏览器进行网页渲染的方法及装置 - Google Patents
Ie内核浏览器进行网页渲染的方法及装置 Download PDFInfo
- Publication number
- CN102929944A CN102929944A CN2012103720236A CN201210372023A CN102929944A CN 102929944 A CN102929944 A CN 102929944A CN 2012103720236 A CN2012103720236 A CN 2012103720236A CN 201210372023 A CN201210372023 A CN 201210372023A CN 102929944 A CN102929944 A CN 102929944A
- Authority
- CN
- China
- Prior art keywords
- kernel
- mapping table
- kernel version
- target
- version
- 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.)
- Granted
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了IE内核浏览器进行网页渲染的方法及装置,所述IE内核浏览器中内置有至少两个版本的IE内核,包括第一映射表,其保存有网址与IE内核版本之间的映射关系;所述方法包括:预置第二映射表,所述第二映射表中保存有特定网址与IE内核版本之间的映射关系;接收到网页访问请求之后,对选择IE内核版本的请求进行监控;对所述选择IE内核版本的请求进行拦截,以阻止查询所述第一映射表的操作;确定所述选择IE内核版本的请求对应的目标网页的网址,并从所述第二映射表中查找所述目标网页的网址对应的目标IE内核版本;利用所述目标IE内核版本对所述目标网页进行渲染。通过本发明,提高了基于IE内核的浏览器的渲染效率。
Description
技术领域
本发明涉及浏览器技术领域,具体涉及IE内核浏览器进行网页渲染的方法及装置。
背景技术
浏览器是指可以显示网页服务器或者文件系统的HTML(HypertextMarkup Language,超文本标记语言)文件内容,并让用户与这些文件交互的一种软件。浏览器最重要的部分是“Rendering Engine”,一般被称为“解释引擎”,或者更多的被称为“浏览器内核”。浏览器内核负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。
不同的渲染引擎对网页编写语法的解释也有不同,因此同一网页在不同的渲染引擎的浏览器里的渲染(显示)效果也可能不同。另一方面,对于同一渲染引擎而言,随着渲染引擎版本的升级,其对网页编写语法的解释一般也会发生变化,这就使得按照旧版本编写的网页,在使用新版本的渲染引擎进行渲染时,可能会使得网页的显示效果受到影响。为了尽可能兼容按照不同渲染引擎、同一渲染引擎的不同版本编写的网页,同一个浏览器中一般会提供多种渲染模式,也即,一个浏览器中内置有多个内核,或者同一内核的多个版本。以IE浏览器为例,在发布IE8浏览器时,内核版本已经升级到IE8,但是,为了能够兼容按照IE6、IE7标准编写的网页,IE8浏览器中内置有IE6、IE7、IE8这三个版本的内核,在使用IE8浏览器浏览某网页时,如果该网页在使用IE7渲染能够正常显示,使用IE8渲染时却出现变形,则可以使用IE7对该网页进行渲染,以保证网页的显示效果。
为了配合这种在多个版本的IE内核之间进行转换的机制,IE内核浏览器一般需要具有内置转换引擎,以及一个专门的配置文件(例如,iecompatdata.xml),该配置文件中保存了网址与IE内核版本之间的映射关系,当用户访问某网页时,浏览器的转换引擎会首先发起一个选择IE内核版本的请求,从该配置文件中查找当前网页的网址,并查找到该网址对应的IE内核版本,然后使用对应的IE内核版本对该网页进行渲染。
然而,在现有技术中,虽然IE内核浏览器已经使用了前述多个IE内核版本之间进行切换的机制,但是,现有的配置文件中保存的网址与IE内核版本之间的映射关系往往是不够的,使得网页的渲染效率及效果受到影响。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的IE内核浏览器进行网页渲染的方法和相应的IE内核浏览器进行网页渲染的装置。
依据本发明的一个方面,提供了一种IE内核浏览器进行网页渲染的方法,所述IE内核浏览器中内置有至少两个版本的IE内核,所述IE内核浏览器中包括第一映射表,所述第一映射表中保存有网址与IE内核版本之间的映射关系;所述方法包括:
预置第二映射表,所述第二映射表中保存有特定网址与IE内核版本之间的映射关系;
接收到网页访问请求之后,对选择IE内核版本的请求进行监控;
当监控到所述选择IE内核版本的请求时,对所述选择IE内核版本的请求进行拦截,以阻止查询所述第一映射表的操作;
确定所述选择IE内核版本的请求对应的目标网页的网址,并从所述第二映射表中查找所述目标网页的网址对应的目标IE内核版本;
利用所述目标IE内核版本对所述目标网页进行渲染。
可选地,还包括:
如果所述第二映射表中不存在所述目标网页的网址,则从所述第一映射表中查找所述目标网页的网址对应的目标IE内核版本。
可选地,还包括:
如果所述第一映射表中不存在所述目标网页的网址,则将预置的默认IE内核版本确定为目标IE内核版本。
可选地,还包括:
记录所述目标网页与目标IE内核版本之间的对应关系;
当拦截到新的选择IE内核版本的请求时,确定新的目标网页的网址;
判断新的目标网页是否为原目标网页的子网页,如果是,则将所记录的原目标网页对应的目标IE内核版本,确定为新的目标网页的目标IE内核版本。
可选地,所述第二映射表保存有根据特定地理区域用户的浏览习惯建立的特定网址与IE内核版本之间的映射关系。
可选地,所述第二映射表为多个,分别对应不同的特定地理区域,所述从所述第二映射表中查找所述目标网页的网址对应的目标IE内核版本包括:
根据IE内核浏览器终端侧所在用户设备的IP地址确定发送方所处的地理区域;
从所述发送方所处地理区域对应的第二映射表中查找所述目标网页的网址对应的目标IE内核版本。
可选地,还包括:
根据IE内核浏览器服务器侧提供的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新。
可选地,所述第二映射表保存有根据特定地理区域用户的浏览习惯建立的特定网址与IE内核版本之间的映射关系,且所述第二映射表为多个,分别对应不同的特定地理区域,则所述根据IE内核浏览器服务器侧提供的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新包括:
根据浏览器终端侧所在用户设备的IP地址确定地理区域;
根据IE内核浏览器服务器侧提供的该地理区域对应的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新。
可选地,所述对IE内核浏览器终端侧的第二映射表进行更新包括:
安装所述IE内核浏览器的新版本时,对所述第二映射表进行更新;
或者,
通过后台方式对所述第二映射表进行更新;
或者,
所述IE内核浏览器被启动时,对所述第二映射表进行更新。
可选地,所述利用所述目标IE内核版本对所述目标网页进行渲染包括:
通过将所述目标IE内核版本设置到GetUrlCacheEntryInfo函数的中的lpCacheEntryInfo参数以及CoInternetSetBrowserEmulationMode函数中,实现利用所述目标IE内核版本对所述目标网页进行渲染。
根据本发明的另一方面,提供了一种IE内核浏览器进行网页渲染的装置,所述IE内核浏览器中内置有至少两个版本的IE内核,所述IE内核浏览器中包括第一映射表,所述第一映射表中保存有网址与IE内核版本之间的映射关系;所述装置包括:
映射表预置单元,用于预置第二映射表,所述第二映射表中保存有特定网址与IE内核版本之间的映射关系;
监控单元,用于接收到网页访问请求之后,对选择IE内核版本的请求进行监控;
拦截单元,用于当监控到所述选择IE内核版本的请求时,对所述选择IE内核版本的请求进行拦截,以阻止查询所述第一映射表的操作;
第一查询单元,用于获取所述选择IE内核版本的请求对应的目标网页的网址,并从所述第二映射表中查找所述目标网页的网址对应的目标IE内核版本;
渲染单元,用于利用所述目标IE内核版本对所述目标网页进行渲染。
可选地,还包括:
第二查询单元,用于如果所述第二映射表中不存在所述目标网页的网址,则从所述第一映射表中查找所述目标网页的网址对应的目标IE内核版本。
可选地,还包括:
默认选择单元,用于如果所述第一映射表中不存在所述目标网页的网址,则将预置的默认IE内核版本确定为目标IE内核版本。
可选地,还包括:
记录单元,用于记录所述目标网页与目标IE内核版本之间的对应关系;
标识确定单元,用于当拦截到新的选择IE内核版本的请求时,确定新的目标网页的网址;
判断单元,用于判断新的目标网页是否为原目标网页的子网页,如果是,则将所记录的原目标网页对应的目标IE内核版本,确定为新的目标网页的目标IE内核版本。
可选地,所述第二映射表保存有根据特定地理区域用户的浏览习惯建立的特定网址与IE内核版本之间的映射关系。
可选地,所述第二映射表为多个,分别对应不同的特定地理区域,所述第一查询单元包括:
地理区域确定子单元,用于根据IE内核浏览器终端侧所在用户设备的IP地址确定发送方所处的地理区域;
查询子单元,用于从所述发送方所处地理区域对应的第二映射表中查找所述目标网页的网址对应的目标IE内核版本。
可选地,还包括:
更新单元,用于根据IE内核浏览器服务器侧提供的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新。
可选地,所述第二映射表保存有根据特定地理区域用户的浏览习惯建立的特定网址与IE内核版本之间的映射关系,且所述第二映射表为多个,分别对应不同的特定地理区域,所述更新单元包括:
区域确定子单元,用于根据浏览器终端侧所在用户设备的IP地址确定地理区域;
区域数据更新子单元,用于根据IE内核浏览器服务器侧提供的该地理区域对应的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新。
可选地,所述更新单元包括:
第一更新子单元,用于安装所述IE内核浏览器的新版本时,对所述第二映射表进行更新;
或者,
第二更新子单元,用于通过后台方式对所述第二映射表进行更新;
或者,
第三更新子单元,用于所述IE内核浏览器被启动时,对所述第二映射表进行更新。
可选地,所述渲染单元具体用于:
通过将所述目标IE内核版本设置到GetUrlCacheEntryInfo函数的中的lpCacheEntryInfo参数以及通过CoInternetSetBrowserEmulationMode函数,实现利用所述目标IE内核版本对所述目标网页进行渲染。
根据本发明的IE内核浏览器进行网页渲染的方法及装置,可以预置不同于原有第一映射表的第二映射表,在监控到选择IE内核版本的请求时,对该请求进行拦截,阻止转换引擎到第一映射表中查询,而是从第二映射表中查询出当前网址对应的目标IE内核,并用该IE内核对目标网页进行渲染。通过这种方式,实现了对第一映射表的扩展,通过第二映射表可以避免完全依赖于原有的第一映射表,并且可以引入非第一映射表为主导的IE内核版本匹配流程,从而提高了基于IE内核的浏览器的渲染效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的方法的流程图;以及
图2示出了根据本发明一个实施例的装置的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先需要说明的是,本发明人在实现本发明的过程中发现,现有技术中之所以在即时使用了多个IE内核版本切换机制的情况下,仍然经常出现某些网页的显示结果不够理想的状况,是因为,现有的IE内核的开发者在制作网址-渲染引擎映射表时,一般假设用户分布在全世界,因此,其网址-IE内核版本映射表更强调通用性,而不会专门针对特定地理区域范围内(例如某个国家或地区等)的用户的浏览习惯进行特殊的处理。而其他浏览器开发商开发的浏览器一般也是使用IE内核,对于使用IE内核的浏览器而言,内置的转换引擎会默认使用微软公司提供的网址-IE内核版本映射表,该映射表就是基于全球范围建立的,并不会考虑到具体国家或地区用户的浏览习惯。
然而,有些浏览器的用户群则一般仅限于某个或某几个国家或地区等特定地理区域,根据浏览器用户分布区域的不同,某特定浏览器的用户在访问网站时,浏览习惯等也往往会体现出区域性的差异。在这样的情况下,如果能够基于特定国家或地区的用户浏览习惯建立起网址-IE内核版本映射表,则可以使得该网址-IE内核版本映射表更具有地域特色,并且也可以使得该特定国家或地区内的网站被收录得更全面,更加符合该国家或地区的用户的浏览习惯。
因此,在本发明实施例中,就可以预置另一张网址-IE内核版本映射表,该网址-IE内核版本映射表可以是基于特定地理区域范围内(例如特定国家或地区等)的用户浏览器习惯建立起来的,收录的该特定地理区域范围内的网站也更全面,当然实际收录的网站也不限于该地理区域范围内。该网址-IE内核版本映射表可以是由工作人员通过对网站进行收集,并对各自适用的最佳IE内核版本的判断手动建立的;并且,还可以根据用户在浏览过程中的反馈,对该网址-IE内核版本映射表进行调整更新。
但是,在浏览器内置了多个IE内核版本的情况下,常规的网页渲染过程一般是这样的:在用户发起访问某网页的请求时,浏览器能够获取到用户请求网页的URL(Uniform/Universal Resource Locator,统一资源定位符),该URL可以是地址栏中输入的URL,或者点击新的链接而使得地址栏中显示网址发生变化时,依据该URL发起网页资源下载请求时所使用的URL。同时,浏览器可以将网页资源下载请求发送到网页服务器,网页服务器便可以返回相应的网页资源,例如HTML,CSS(Cascading Style Sheet,级联样式表),JS(JavaScript)等资源后,然后就可以在渲染中对网页资源进行渲染。由于内置了多个IE内核版本,因此,转换引擎还需要发起对使用哪个IE内核版本进行渲染的判断,以选择最合适的IE内核版本后进行渲染。该转换引擎会自动到一个默认的网址-IE内核版本映射表(也即由微软公司提供的网址-IE内核版本映射表)中进行查询。也就是说,仅仅提供一个不同于默认网址-IE内核版本映射表的另一个网址-IE内核版本映射表是不够的,如何打破该常规的流程,使得转换引擎能够读取该另一个网址-IE内核版本映射表,并从该网址-IE内核版本映射表中获取相关的信息,是最终实现前述目的的关键。
为此,本发明实施例提供了一种IE内核浏览器进行网页渲染方法,前提是该IE内核浏览器中内置有至少两个版本的IE内核,并且,该IE内核浏览器中包括第一映射表,该第一映射表一般是基于全世界范围建立的,并没有考虑特定国家或地区等用户的浏览习惯问题,其中保存有网页标识与IE内核版本之间的映射关系;参见图1,该方法可以包括:
S101:预置第二映射表,所述第二映射表中保存有特定网址与IE内核版本之间的映射关系;
如前文所述,在本发明实施例中,需要预置不同于微软提供的网址-IE内核版本映射表的另一张网址-IE内核版本映射表,在实际应用中,该网址-IE内核版本映射表可以是基于某特定的地理区域范围内用户的浏览习惯建立的。对于第二映射表中的网址和内核之间的映射关系的获取,多是浏览器运营商的服务器侧接收用户的反馈上报的网址后,将网址与各个IE内核版本进行逐一匹配测试,选择出渲染效果最好的一个,将对应关系保存到第二映射表中;和/或,也可以服务器侧的人员对于指定地域用户访问的网站网址进行收集,并分别将各个网站的网址与各个IE内核版本进行逐一匹配测试,最终选择出渲染效果最好的IE内核版本,并将对应关系保存到第二映射表中。然后再将第二映射表部署到浏览器的客户端侧。
S102:接收到网页访问请求之后,对选择IE内核版本的请求进行监控;
S102:当监控到所述选择IE内核版本的请求时,对所述请求选择IE内核版本的进行拦截,以阻止查询所述第一映射表的操作;
选择IE内核版本的请求可以是有转换引擎发起的,目的就是到网址-IE内核版本映射表中查询当前网址对应的IE内核版本。该请求一般是通过调用以下函数进行的:
GetUrlCacheEntryInfo(LPCTSTR lpszUrlName,LPINTERNET_CACHE_ENTRY_INFO lpCacheEntryInfo,LPDWORD lpdwCacheEntryInfoBufferSize);
因此,可以通过钩子对该函数进行HOOK,这样,当发现转换引擎通过调用该函数发出选择IE内核版本的请求之后,就可以对该请求进行拦截,阻止该请求向默认的网址-IE内核版本映射表的发送。
S103:确定所述请求对应的目标网页的网址,并从所述第二映射表中查找所述目标网页的网址对应的目标IE内核版本;
选择IE内核版本的请求是为了给某一个目标网页选择合适的IE内核版本,因此,拦截到该请求之后,可以首先确定出目标网页的标识信息,具体实现时,该标识信息可以是目标网页的URL等信息。具体可以在用户在浏览器地址栏中输入URL之后就获取到,或者在用户点击新的链接而使得地址栏中显示的URL发生变化时,根据地址栏中的新URL获取到。或者,选择IE内核版本的请求中也会携带目标网页的URL,因此,也可以从该请求中提取。
在获取到目标网页的网址之后,就可以从预置的第二映射表中查找该目标网页的网址,并取出该网址对应的目标IE内核版本。该预置的第二映射表就可以是前述不同于默认网址-IE内核版本映射表的另一网址-IE内核版本映射表。在该网址-IE内核版本映射表中,也保存有网址与IE内核版本之间的对应关系,如前文所述,与默认的网址-IE内核版本映射表不同的是,该网址-IE内核版本映射表中可以根据实际的需求灵活地设置其中具体包含哪些网址,以及各个网址对应IE内核版本。
当然,在实际应用中,也可能出现第二网址-IE内核版本映射表中不存在某目标网页的网址的情况,还可以到第一网址-IE内核版本映射表中进行查询。该第一网址-IE内核版本映射表就可以是指默认的网址-IE内核版本映射表,例如由微软等在全球范围内建立起来的网址-IE内核版本映射表。如果在第一网址-IE内核版本映射表中仍然无法查找到当前网页,则可以使用默认的IE内核版本对当前目标网页进行渲染。
另外,在实际应用中,有些网页之间可能存在父子关系,例如,假设网页B是网页A的子网页,则网页A与网页B的制作者可能是相同的,并且可能是同时制作的,因此,网页A与网页B对应的最佳IE内核版本可能是相同的。因此,在本发明实施例中,在针对某目标网页A选择出最佳IE内核版本之后,可以记录下此次选择的结果;如果发现用户在该目标网页A中点击其子网页B进行访问,则在拦截到针对该子网页B的IE内核版本选择请求之后,就可以直接将网页A对应的IE内核版本返回,而不必再进行网址-IE内核版本映射表的查询操作。这样,一方面可以提高响应效率,另一方面,当一个父网页包含多个子网页的情况下,就可以仅在网址-IE内核版本映射表中保存该父网页与IE内核版本之间的对应关系,各个子网页则不需要再进行保存,因此,可以避免网址-IE内核版本映射表由于收录的网址过多而显得过于臃肿。
S104:利用所述目标IE内核版本对所述目标网页进行渲染。
在为目标网页选定了某目标IE内核版本之后,就可以利用该目标IE内核版本对目标网页进行渲染。具体实现时,可以使用GetUrlCacheEntryInfo函数的中的LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo参数进行设置,来设置该选中的目标IE内核版本。其中,lpCacheEntryInfo一个指向LPINTERNET_CACHE_ENTRY_INFO的结构体指针,该结构体包含网页缓存的信息,可以通过为该结构体中的各个成员进行赋值的方式,以进行目标IE内核版本的设定。进一步地还需要使用HRESULT WINAPICoInternetSetBrowserEmulationMode)(DWORD dwCurMode)函数来设置上述的选中的IE内核版本,这样就可以确保所选中的IE内核版本可以用来进行目标网页的渲染。
另外,在实际应用中,如果同一个IE内核浏览器的用户分布在多个地理区域,则也可以在IE内核浏览器中设置多个第二映射表,分别对应不同的特定地理区域,例如,中国的IP地址段对应着第二映射表1;香港的IP地址段对应着第二映射表2;台湾的IP地址段对应着第二映射表3,等等。这样,可以根据浏览器终端用户的地域不同,适配不同的第二映射表,以便服务不同地域的用户。具体实现时,在接收到某IE浏览器客户端的网页访问请求之后,可以首先根据IE浏览器客户端所在终端设备的IP地址等信息(该信息会在网页访问请求中携带,因此可以从中获取)确定出用户所处的地理区域,然后根据该用户所在的地理区域对应的第二映射表,来查询当前请求访问的网页标识信息对应的目标IE内核版本。
在实际应用中,本发明实施例所述的第二映射表的灵活性还体现在,它可以根据IE内核浏览器服务器侧提供的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新,例如增加信息的映射条目,或者变更原有的映射条目等等。其中,关于IE内核浏览器服务器侧提供的特定网址与IE内核版本的映射关系,其来源同样可以是开发或者维护人员等收集的,或者也可以是用户上报的。需要说明的是,在第二映射表保存有根据特定地理区域用户的浏览习惯建立的特定网址与IE内核版本之间的映射关系,且所述第二映射表为多个,分别对应不同的特定地理区域的情况下,对客户端的第二映射表进行更新时,可以首先根据浏览器终端侧所在用户设备的IP地址确定地理区域,然后根据IE内核浏览器服务器侧提供的该地理区域对应的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新。
具体在对第二映射表进行更新时,可以有种不同的时机。例如,可以在安装新版本的IE内核浏览器时,从该浏览器的服务器获取更新信息,对第二映射表进行更新。或者,也可以在用户启动浏览器时,向服务器发出获取更新信息的请求,根据服务器返回的信息对第二映射表进行更新。再或者,也可以通过后台的方式获取服务器上的更新信息,并对第二映射表进行更新。其中,在所谓的后台方式中,可以是由客户端定期或者不定期地后台访问服务器,以获取更新信息,或者也可以是由服务器采用广播等方式向各个客户端推送更新信息,等等。
总之,在本发明实施例中,可以预置不同于原有第一映射表的第二映射表,在监控到选择IE内核版本的请求时,对该请求进行拦截,阻止转换引擎到第一映射表中查询,而是从第二映射表中查询出当前网址对应的目标IE内核,并用该IE内核对目标网页进行渲染。通过这种方式,实现了对第一映射表的扩展,通过第二映射表可以避免完全依赖于原有的第一映射表,并且可以引入非第一映射表为主导的IE内核版本匹配流程,从而提高了基于IE内核的浏览器的渲染效率。
与本发明实施例提供的IE内核浏览器进行网页渲染的方法相对应,本发明实施例还提供了一种IE内核浏览器进行网页渲染的装置,其中,所述IE内核浏览器中内置有至少两个版本的IE内核,所述IE内核浏览器中包括第一映射表,所述第一映射表中保存有网址与IE内核版本之间的映射关系;参见图2,所述装置具体可以包括:
映射表预置单元201,用于预置第二映射表,所述第二映射表中保存有特定网址与IE内核版本之间的映射关系;
监控单元202,用于接收到网页访问请求之后,对选择IE内核版本的请求进行监控;
拦截单元203,用于当监控到所述选择IE内核版本的请求时,对所述选择IE内核版本的请求进行拦截,以阻止查询所述第一映射表的操作;
第一查询单元204,用于获取所述选择IE内核版本的请求对应的目标网页的网址,并从所述第二映射表中查找所述目标网页的网址对应的目标IE内核版本;
渲染单元205,用于利用所述目标IE内核版本对所述目标网页进行渲染。
具体实现时,该装置还可以包括:
第二查询单元,用于如果所述第二映射表中不存在所述目标网页的网址,则从所述第一映射表中查找所述目标网页的网址对应的目标IE内核版本。
另外,该装置还可以包括:
默认选择单元,用于如果所述第一映射表中不存在所述目标网页的网址,则将预置的默认IE内核版本确定为目标IE内核版本。
为了提高效率,防止网址-IP内核版本映射表的规模过于庞大,该装置还可以包括:
记录单元,用于记录所述目标网页与目标IE内核版本之间的对应关系;
标识确定单元,用于当拦截到新的选择IE内核版本的请求时,确定新的目标网页的网址;
判断单元,用于判断新的目标网页是否为原目标网页的子网页,如果是,则将所记录的原目标网页对应的目标IE内核版本,确定为新的目标网页的目标IE内核版本。
在实际应用中,所述第二映射表可以保存有根据特定地理区域用户的浏览习惯建立的特定网址与IE内核版本之间的映射关系。
其中,所述第二映射表为多个,分别对应不同的特定地理区域,所述第一查询单元204可以包括:
地理区域确定子单元,用于根据IE内核浏览器终端侧所在用户设备的IP地址确定发送方所处的地理区域;
查询子单元,用于从所述发送方所处地理区域对应的第二映射表中查找所述目标网页的网址对应的目标IE内核版本。
该装置还可以包括:
更新单元,用于根据IE内核浏览器服务器侧提供的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新。
其中,如果所述第二映射表保存有根据特定地理区域用户的浏览习惯建立的特定网址与IE内核版本之间的映射关系,且所述第二映射表为多个,分别对应不同的特定地理区域,则所述更新单元具体可以包括:
区域确定子单元,用于根据浏览器终端侧所在用户设备的IP地址确定地理区域;
区域数据更新子单元,用于根据IE内核浏览器服务器侧提供的该地理区域对应的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新。
其中,所述更新单元包括:
第一更新子单元,用于安装所述IE内核浏览器的新版本时,对所述第二映射表进行更新;
或者,
第二更新子单元,用于通过后台方式对所述第二映射表进行更新;
或者,
第三更新子单元,用于所述IE内核浏览器被启动时,对所述第二映射表进行更新。
在具体实现时,所述渲染单元205具体可以用于:
通过将所述目标IE内核版本设置到GetUrlCacheEntryInfo函数的中的lpCacheEntryInfo参数以及CoInternetSetBrowserEmulationMode函数中,实现利用所述目标IE内核版本对所述目标网页进行渲染。
总之,在本发明实施例提供的上述装置中,可以预置不同于原有第一映射表的第二映射表,在监控到选择IE内核版本的请求时,对该请求进行拦截,阻止转换引擎到第一映射表中查询,而是从第二映射表中查询出当前网址对应的目标IE内核,并用该IE内核对目标网页进行渲染。通过这种方式,实现了对第一映射表的扩展,通过第二映射表可以避免完全依赖于原有的第一映射表,并且可以引入非第一映射表为主导的IE内核版本匹配流程,从而提高了基于IE内核的浏览器的渲染效率。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的IE内核浏览器进行网页渲染的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本申请可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
Claims (20)
1.一种IE内核浏览器进行网页渲染的方法,所述IE内核浏览器中内置有至少两个版本的IE内核,所述IE内核浏览器中包括第一映射表,所述第一映射表中保存有网址与IE内核版本之间的映射关系;所述方法包括:
预置第二映射表,所述第二映射表中保存有特定网址与IE内核版本之间的映射关系;
接收到网页访问请求之后,对选择IE内核版本的请求进行监控;
当监控到所述选择IE内核版本的请求时,对所述选择IE内核版本的请求进行拦截,以阻止查询所述第一映射表的操作;
确定所述选择IE内核版本的请求对应的目标网页的网址,并从所述第二映射表中查找所述目标网页的网址对应的目标IE内核版本;
利用所述目标IE内核版本对所述目标网页进行渲染。
2.如权利要求1所述的方法,还包括:
如果所述第二映射表中不存在所述目标网页的网址,则从所述第一映射表中查找所述目标网页的网址对应的目标IE内核版本。
3.如权利要求2所述的方法,还包括:
如果所述第一映射表中不存在所述目标网页的网址,则将预置的默认IE内核版本确定为目标IE内核版本。
4.如权利要求1至3任一项所述的方法,还包括:
记录所述目标网页与目标IE内核版本之间的对应关系;
当拦截到新的选择IE内核版本的请求时,确定新的目标网页的网址;
判断新的目标网页是否为原目标网页的子网页,如果是,则将所记录的原目标网页对应的目标IE内核版本,确定为新的目标网页的目标IE内核版本。
5.如权利要求1至3任一项所述的方法,所述第二映射表保存有根据特定地理区域用户的浏览习惯建立的特定网址与IE内核版本之间的映射关系。
6.如权利要求5任一项所述的方法,所述第二映射表为多个,分别对应不同的特定地理区域,所述从所述第二映射表中查找所述目标网页的网址对应的目标IE内核版本包括:
根据IE内核浏览器终端侧所在用户设备的IP地址确定发送方所处的地理区域;
从所述发送方所处地理区域对应的第二映射表中查找所述目标网页的网址对应的目标IE内核版本。
7.如权利要求1所述的方法,还包括:
根据IE内核浏览器服务器侧提供的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新。
8.根据权利要求7所述的方法,所述第二映射表保存有根据特定地理区域用户的浏览习惯建立的特定网址与IE内核版本之间的映射关系,且所述第二映射表为多个,分别对应不同的特定地理区域,则所述根据IE内核浏览器服务器侧提供的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新包括:
根据浏览器终端侧所在用户设备的IP地址确定地理区域;
根据IE内核浏览器服务器侧提供的该地理区域对应的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新。
9.如权利要求7或8所述的方法,所述对IE内核浏览器终端侧的第二映射表进行更新包括:
安装所述IE内核浏览器的新版本时,对所述第二映射表进行更新;
或者,
通过后台方式对所述第二映射表进行更新;
或者,
所述IE内核浏览器被启动时,对所述第二映射表进行更新。
10.如权利要求1至3任一项所述的方法,所述利用所述目标IE内核版本对所述目标网页进行渲染包括:
通过将所述目标IE内核版本设置到GetUrlCacheEntryInfo函数的中的lpCacheEntryInfo参数以及CoInternetSetBrowserEmulationMode函数中,实现利用所述目标IE内核版本对所述目标网页进行渲染。
11.一种IE内核浏览器进行网页渲染的装置,所述IE内核浏览器中内置有至少两个版本的IE内核,所述IE内核浏览器中包括第一映射表,所述第一映射表中保存有网址与IE内核版本之间的映射关系;所述装置包括:
映射表预置单元,用于预置第二映射表,所述第二映射表中保存有特定网址与IE内核版本之间的映射关系;
监控单元,用于接收到网页访问请求之后,对选择IE内核版本的请求进行监控;
拦截单元,用于当监控到所述选择IE内核版本的请求时,对所述选择IE内核版本的请求进行拦截,以阻止查询所述第一映射表的操作;
第一查询单元,用于获取所述选择IE内核版本的请求对应的目标网页的网址,并从所述第二映射表中查找所述目标网页的网址对应的目标IE内核版本;
渲染单元,用于利用所述目标IE内核版本对所述目标网页进行渲染。
12.如权利要求11所述的装置,还包括:
第二查询单元,用于如果所述第二映射表中不存在所述目标网页的网址,则从所述第一映射表中查找所述目标网页的网址对应的目标IE内核版本。
13.如权利要求12所述的装置,还包括:
默认选择单元,用于如果所述第一映射表中不存在所述目标网页的网址,则将预置的默认IE内核版本确定为目标IE内核版本。
14.如权利要求11至13任一项所述的装置,还包括:
记录单元,用于记录所述目标网页与目标IE内核版本之间的对应关系;
标识确定单元,用于当拦截到新的选择IE内核版本的请求时,确定新的目标网页的网址;
判断单元,用于判断新的目标网页是否为原目标网页的子网页,如果是,则将所记录的原目标网页对应的目标IE内核版本,确定为新的目标网页的目标IE内核版本。
15.如权利要求11至13任一项所述的装置,所述第二映射表保存有根据特定地理区域用户的浏览习惯建立的特定网址与IE内核版本之间的映射关系。
16.如权利要求15所述的装置,所述第二映射表为多个,分别对应不同的特定地理区域,所述第一查询单元包括:
地理区域确定子单元,用于根据IE内核浏览器终端侧所在用户设备的IP地址确定发送方所处的地理区域;
查询子单元,用于从所述发送方所处地理区域对应的第二映射表中查找所述目标网页的网址对应的目标IE内核版本。
17.如权利要求11所述的装置,还包括:
更新单元,用于根据IE内核浏览器服务器侧提供的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新。
18.如权利要求17所述的装置,所述第二映射表保存有根据特定地理区域用户的浏览习惯建立的特定网址与IE内核版本之间的映射关系,且所述第二映射表为多个,分别对应不同的特定地理区域,所述更新单元包括:
区域确定子单元,用于根据浏览器终端侧所在用户设备的IP地址确定地理区域;
区域数据更新子单元,用于根据IE内核浏览器服务器侧提供的该地理区域对应的特定网址与IE内核版本的映射关系,对IE内核浏览器终端侧的第二映射表进行更新。
19.如权利要求17或18所述的装置,所述更新单元包括:
第一更新子单元,用于安装所述IE内核浏览器的新版本时,对所述第二映射表进行更新;
或者,
第二更新子单元,用于通过后台方式对所述第二映射表进行更新;
或者,
第三更新子单元,用于所述IE内核浏览器被启动时,对所述第二映射表进行更新。
20.如权利要求11至13任一项所述的装置,所述渲染单元具体用于:
通过将所述目标IE内核版本设置到GetUrlCacheEntryInfo函数的中的lpCacheEntryInfo参数以及通过CoInternetSetBrowserEmulationMode函数,实现利用所述目标IE内核版本对所述目标网页进行渲染。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210372023.6A CN102929944B (zh) | 2012-09-28 | 2012-09-28 | Ie内核浏览器进行网页渲染的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210372023.6A CN102929944B (zh) | 2012-09-28 | 2012-09-28 | Ie内核浏览器进行网页渲染的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102929944A true CN102929944A (zh) | 2013-02-13 |
CN102929944B CN102929944B (zh) | 2015-10-14 |
Family
ID=47644742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210372023.6A Active CN102929944B (zh) | 2012-09-28 | 2012-09-28 | Ie内核浏览器进行网页渲染的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102929944B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942277A (zh) * | 2014-03-31 | 2014-07-23 | 北京奇虎科技有限公司 | 一种浏览器中的文件下载方法、装置和浏览器 |
CN104375849A (zh) * | 2013-08-15 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 加载内核的方法及装置 |
CN108255890A (zh) * | 2016-12-29 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 页面的处理方法和装置 |
CN110618850A (zh) * | 2019-08-30 | 2019-12-27 | 北京浪潮数据技术有限公司 | 一种ui界面加载方法、系统及相关装置 |
CN111859216A (zh) * | 2020-07-01 | 2020-10-30 | 天津赢达信科技有限公司 | 一种浏览器客户端动态适配不同ie内核的方法 |
CN113868570A (zh) * | 2021-08-16 | 2021-12-31 | 北京国电通网络技术有限公司 | 多核浏览器的内核切换方法及相关设备 |
CN115470426A (zh) * | 2022-09-02 | 2022-12-13 | 北京海泰方圆科技股份有限公司 | 浏览器内核确定方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655863A (zh) * | 2009-04-24 | 2010-02-24 | 北京搜狗科技发展有限公司 | 在浏览器中加载网页的方法及浏览器 |
US20110157219A1 (en) * | 2009-12-31 | 2011-06-30 | International Business Machines Corporation | Automatic targeting of browser content to optimal rendering engine |
CN102385594A (zh) * | 2010-08-31 | 2012-03-21 | 腾讯科技(深圳)有限公司 | 多核浏览器的内核控制方法和装置 |
CN102467565A (zh) * | 2010-11-19 | 2012-05-23 | 奇智软件(北京)有限公司 | 一种浏览器内核切换的方法 |
-
2012
- 2012-09-28 CN CN201210372023.6A patent/CN102929944B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655863A (zh) * | 2009-04-24 | 2010-02-24 | 北京搜狗科技发展有限公司 | 在浏览器中加载网页的方法及浏览器 |
US20110157219A1 (en) * | 2009-12-31 | 2011-06-30 | International Business Machines Corporation | Automatic targeting of browser content to optimal rendering engine |
CN102385594A (zh) * | 2010-08-31 | 2012-03-21 | 腾讯科技(深圳)有限公司 | 多核浏览器的内核控制方法和装置 |
CN102467565A (zh) * | 2010-11-19 | 2012-05-23 | 奇智软件(北京)有限公司 | 一种浏览器内核切换的方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375849A (zh) * | 2013-08-15 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 加载内核的方法及装置 |
CN104375849B (zh) * | 2013-08-15 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 加载内核的方法及装置 |
CN103942277A (zh) * | 2014-03-31 | 2014-07-23 | 北京奇虎科技有限公司 | 一种浏览器中的文件下载方法、装置和浏览器 |
CN103942277B (zh) * | 2014-03-31 | 2017-12-05 | 北京奇虎科技有限公司 | 一种浏览器中的文件下载方法、装置和浏览器 |
CN108255890A (zh) * | 2016-12-29 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 页面的处理方法和装置 |
CN108255890B (zh) * | 2016-12-29 | 2020-08-11 | 腾讯科技(深圳)有限公司 | 页面的处理方法和装置 |
CN110618850A (zh) * | 2019-08-30 | 2019-12-27 | 北京浪潮数据技术有限公司 | 一种ui界面加载方法、系统及相关装置 |
CN111859216A (zh) * | 2020-07-01 | 2020-10-30 | 天津赢达信科技有限公司 | 一种浏览器客户端动态适配不同ie内核的方法 |
CN113868570A (zh) * | 2021-08-16 | 2021-12-31 | 北京国电通网络技术有限公司 | 多核浏览器的内核切换方法及相关设备 |
CN115470426A (zh) * | 2022-09-02 | 2022-12-13 | 北京海泰方圆科技股份有限公司 | 浏览器内核确定方法、装置、计算机设备和存储介质 |
CN115470426B (zh) * | 2022-09-02 | 2023-07-21 | 北京海泰方圆科技股份有限公司 | 浏览器内核确定方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102929944B (zh) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102929944B (zh) | Ie内核浏览器进行网页渲染的方法及装置 | |
US20220021626A1 (en) | Incorporating web applications into web pages at the network level | |
CN102843445B (zh) | 一种浏览器及其进行域名解析的方法 | |
JP5986312B2 (ja) | アプリケーション互換性の評価 | |
CN102663062B (zh) | 一种处理搜索结果中无效链接的方法及装置 | |
CN101147145B (zh) | 基于嵌入式web的管理方法 | |
US20150244670A1 (en) | Browser and method for domain name resolution by the same | |
CN103744853A (zh) | 提供搜索引擎网页快照信息的方法及装置 | |
US9571601B2 (en) | Method and an apparatus for performing offline access to web pages | |
CN102855334B (zh) | 一种浏览器及其获取dns解析数据的方法 | |
KR20140014132A (ko) | 컨텐츠 제공자-특이 url 키워드 검색 제공을 위한 방법 및 시스템 | |
CN103500194A (zh) | 一种进行网页加载的方法、装置和浏览器 | |
CN102831252A (zh) | 一种用于更新索引数据库的方法及装置、搜索方法和系统 | |
CN102930057A (zh) | 搜索实现方法和装置 | |
CN104427627A (zh) | 测试数据获取方法、客户端与服务器 | |
CN103179125A (zh) | 网站认证信息的显示方法及浏览器 | |
US20090100322A1 (en) | Retrieving data relating to a web page prior to initiating viewing of the web page | |
CN103617241A (zh) | 搜索信息处理方法、浏览器终端与服务器 | |
JP5869010B2 (ja) | モバイル検索環境でモバイルurlを提供するシステムおよびその方法 | |
CN103077349B (zh) | 一种浏览器侧提示访问安全信息的方法及装置 | |
CN113330432A (zh) | 搜索结果中列出的内容的异步预测性缓存 | |
US10528988B2 (en) | Ad extensions on content network | |
CN103258055A (zh) | 一种文件下载设备和方法 | |
CN104077390A (zh) | 基于浏览器的搜索展示方法、装置和电子设备 | |
CN104199862A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220711 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co., Ltd |
|
TR01 | Transfer of patent right |