CN103838839A - 一种ie内核浏览器的页面下载控制方法和系统 - Google Patents
一种ie内核浏览器的页面下载控制方法和系统 Download PDFInfo
- Publication number
- CN103838839A CN103838839A CN201410065255.6A CN201410065255A CN103838839A CN 103838839 A CN103838839 A CN 103838839A CN 201410065255 A CN201410065255 A CN 201410065255A CN 103838839 A CN103838839 A CN 103838839A
- Authority
- CN
- China
- Prior art keywords
- page
- downloading
- download
- downloading request
- request
- 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
Classifications
-
- 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]
Abstract
本申请提供了一种IE内核浏览器的页面下载控制方法和系统,其中,所述方法包括:启动IE内核浏览器进程,并启动预置的下载进程;在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;当所述IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载,并在所述页面下载过程中向IE内核浏览器进程返回下载状态信息。本申请可以有效控制IE内核浏览器的页面下载过程,提高页面下载的效率和稳定性。
Description
本发明专利申请是申请日为2011年9月26日、申请号为201110289062.5、名称为“一种IE内核浏览器的页面下载控制方法和系统”的中国发明专利申请的分案申请。
技术领域
本申请涉及浏览器的技术领域,特别是涉及一种IE内核浏览器的页面下载控制方法和一种IE内核浏览器的页面下载控制系统。
背景技术
浏览器最重要的部分是“Rendering Engine”,可大概译为“解释引擎”,一般习惯将之称为“浏览器内核”。浏览器内核负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。所以,通常所谓的浏览器内核也就是对页面进行下载、解析、执行、渲染的引擎,该引擎决定了浏览器如何显示网页的内容以及页面的格式信息。
目前市场上流行的浏览器,按实现方式大体可以分为两种:
第一种,浏览器的开发者既进行浏览器内核的开发,也进行浏览器产品的开发。如:chrome浏览器、firefox浏览器、Safari浏览器、InternetExplore浏览器等。
第二种,浏览器的开发者,仅进行浏览器产品的开发,使用其他浏览器厂商实现的内核。将内核嵌入到自己浏览器内来使用。如:360安全浏览器、遨游浏览器、世界之窗浏览器、搜狗浏览器等。这种浏览器通常采用Internet Explorer浏览器内核,通常被称之为“IE内核浏览器”。
目前市场上所有的IE内核浏览器,仅是直接使用系统提供的WebBrowser组件实现。具体的使用方法是,首先用OleCreate API(应用程序接口)创建WebBrowser组件,获取组件创建的窗口,将其嵌入到浏览器的窗口内。然后调用该WebBrowser组件提供的接口,让它访问网址。在整个访问过程中,由WebBrowser组件自己的代码来进行网页的下载、解析、执行、渲染。外壳程序仅需接收组件返回的通知,变更相应界面内容。
IE内核为了让开发者使用起来非常简单,所以暴露的接口非常有限,一般只提供访问网页、停止、刷新、后退等基本接口,仅能对页面进行简单的控制,如访问某网址、刷新、停止、后退等。对于很多内部情况,浏览器开发者毫不知情、无法控制。尤其是无法控制页面下载过程,从而影响页面下载的效率和稳定性。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够有效控制IE内核浏览器的页面下载过程,以提高页面下载的效率和稳定性。
发明内容
本申请所要解决的技术问题是提供一种IE内核浏览器的页面下载控制方法,用以有效控制IE内核浏览器的页面下载过程,提高页面下载的效率和稳定性。
相应地,本申请还提供了一种IE内核浏览器的页面下载控制系统,用以保证上述方法在实际中的应用。
为解决上述问题,本申请提供了一种IE内核浏览器的页面下载控制方法,包括:
启动IE内核浏览器进程,并启动预置的下载进程;
在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;
当所述IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载,并在所述页面下载过程中向IE内核浏览器进程返回下载状态信息。
优选的是,所述的方法还包括:
所述IE内核浏览器进程依据所述下载状态信息,对下载的页面数据进行解析、执行、和/或渲染的操作。
优选的是,所述在IE内核浏览器进程中注册通信协议的步骤为,使用IInternetSession接口的RegisterNameSpace方法,在IE内核浏览器进程中注册通信协议,所述通信协议包括http协议、https协议、mailto协议和FTP协议。
优选的是,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
获取所述页面下载请求对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
优选的是,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息,所述页面下载请求对应的页面资源类型通过读取所述扩展名信息获取。
优选的是,所述当IE内核浏览器进程收到IE下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
下载进程获取所述页面下载请求对应的文件大小信息;
判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
优选的是,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则从缓存中提取该文件;若否,则根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
优选的是,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤还包括:
在从缓存中提取文件进行下载的步骤之前,查询该文件写入缓存的时间是否超过预设期限,若是,则根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
优选的是,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;其中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息;
下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
读取所述页面下载请求的扩展名信息获取对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
依次处理所述下载任务列表中的页面下载请求,获取页面下载请求对应的文件大小信息;
判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
优选的是,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;其中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息;
下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则查询该文件写入缓存的时间是否超过预设期限,若是,则根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存;若否,则从缓存中提取该文件;
若所述页面下载请求相应的文件未被预先写入缓存中,则根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
其中,所述根据页面下载请求从服务器下载相应的文件的步骤包括:
下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
读取所述页面下载请求的扩展名信息获取对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
优选的是,所述当IE内核浏览器进程收到IE下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则查询该文件写入缓存的时间是否超过预设期限,若是,则根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存;若否,则从缓存中提取该文件;
若所述页面下载请求相应的文件未被预先写入缓存中,则根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
其中,所述根据页面下载请求从服务器下载相应的文件的步骤包括:
下载进程获取所述页面下载请求对应的文件大小信息;
判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
优选的是,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;其中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息;
下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则查询该文件写入缓存的时间是否超过预设期限,若是,则根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存;若否,则从缓存中提取该文件;
若所述页面下载请求相应的文件未被预先写入缓存中,则根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
其中,所述根据页面下载请求从服务器下载相应的文件的步骤包括:
下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
读取所述页面下载请求的扩展名信息获取对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
依次处理所述下载任务列表中的页面下载请求,获取页面下载请求对应的文件大小信息;
判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
本申请实施例还公开了一种IE内核浏览器的页面下载控制系统,包括:
启动模块,用于启动IE内核浏览器进程,并启动预置的下载进程;
协议注册模块,用于在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;
下载控制模块,用于在所述IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载;
状态汇报模块,用于在所述页面下载过程中向IE内核浏览器进程返回下载状态信息。
优选的是,所述页面下载控制系统,还包括:
内核操作模块,用于由所述IE内核浏览器进程依据所述下载状态信息,对下载的页面数据进行解析、执行、和/或渲染的操作。
优选的是,所述下载控制模块包括:
请求传送子模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
任务添加子模块,用于由下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
排序子模块,用于获取所述页面下载请求对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
下载执行子模块,用于依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
优选的是,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息,所述页面下载请求对应的页面资源类型通过读取所述扩展名信息获取。
优选的是,所述下载控制模块包括:
请求传送子模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
文件大小获取子模块,用于由下载进程获取所述页面下载请求对应的文件大小信息;
文件大小判断子模块,用于判断所述文件大小信息是否超过预设的文件大小阈值,若是,则调用多线程下载子模块;否则,调用单线程下载子模块;
多线程下载子模块,用于采用多线程下载的方式执行相应页面的下载操作;
单线程下载子模块,用于采用单线程下载的方式执行相应页面的下载操作。
优选的是,所述下载控制模块包括:
请求传送子模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
缓存判断子模块,用于由下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则触发缓存提取子模块;若否,则触发服务器下载子模块;
缓存提取子模块,用于从缓存中提取该文件;
服务器下载子模块,用于根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
优选的是,所述下载控制模块还包括:
缓存超期判断子模块,用于在触发缓存提取子模块之前,查询该文件写入缓存的时间是否超过预设期限,若是,则调用服务器下载子模块。
与现有技术相比,本申请具有以下优点:
本申请使用IE的协议管理扩展接口,来将IE内核浏览器的全部下载都自己接管,从而使嵌入IE内核浏览器的外壳程序,能够自行控制浏览器内核的下载,并将下载后的数据送回IE内核,让其继续执行解析、执行、渲染的工作。由于下载行为不发生在浏览器进程,当下载遇到问题程序崩溃时,浏览器进程不会随之崩溃,可以重新启动一个下载进程继续下载。因而,本申请可以有效控制IE内核浏览器的页面下载过程,以提高页面下载的效率和稳定性。
再者,本申请通过采用资源排序、多线程下载和缓存读写的下载优化方案,能提升下载速度和页面展现速度,充分发挥用户的带宽,提高资源利用率。
附图说明
图1是本申请的一种IE内核浏览器的页面下载控制方法实施例的步骤流程图;
图2是是本申请的一种IE内核浏览器的页面下载控制系统实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请的核心构思在于,使嵌入IE内核浏览器的外壳程序,能够自行控制浏览器内核的下载,并将下载后的数据送回IE内核,让其继续执行解析、执行、渲染的工作。
参考图1,示出了本申请的一种IE内核浏览器的页面下载控制方法实施例的步骤流程图,具体可以包括以下步骤:
步骤101、启动IE内核浏览器进程,并启动预置的下载进程;
在本申请实施例中,所述IE内核浏览器进程是指采用IE(InternetExplorer)浏览器内核的浏览器进程。现有技术中,浏览器内核负责对页面进行下载、解析、执行、渲染,而在本实施例中,IE浏览器内核仅用于完成解析、执行、渲染的操作,下载的操作由预置的下载进程完成。
公知的是,进程是一个正在执行的程序,即计算机中正在运行的程序实例;其可以分配给处理器并作为一个实体由处理器执行。从用户角度来看,浏览器进程可以理解为在任务管理器内所启动的浏览器代表的进程。
所述下载进程可以理解为IE内核浏览器的另外一个进程,是一个专门用于下载操作的进程。即所述下载进程专门用于下载,而不做其他操作。作为本申请实施例具体实现的一种示例,所述下载进程内部可以使用WinHTTP(WinHTTP的全称是Microsoft Windows HTTP Services,它提供给开发者一个HTTP客户端应用程序接口,通过这种API借助HTTP协议给其他的HTTP服务器发送请求)实现一个下载器,和一个下载管理器。即所述下载进程中可以包括一个下载管理器和一些下载器,其中,所述下载管理器可以用于按照预设的下载规则控制页面下载,例如对下载资源的请求进行排序、优化等;下载器则可以用于实现具体的下载操作,并通过下载管理器向IE内核浏览器进程报告下载情况,即下载状态信息。在实际中,这个下载进程就像一个服务,启动后随时等待被调用。
在本申请实施例中,所述IE内核浏览器进程启动时,所述下载进程也会启动,或者说,所述IE内核浏览器进程启动则会触发所述下载进程启动,以保证页面在浏览器中的正常展现。
步骤102、在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;
在具体实现中,所述在IE内核浏览器进程中注册通信协议的步骤可以为,使用IInternetSession接口的RegisterNameSpace方法,在IE内核浏览器进程中注册通信协议,所述通信协议可以包括http协议、https协议、mailto协议和FTP协议等。
具体而言,IInternetSession接口的RegisterNameSpace方法,要求了一个固定格式的接口,使用这个方法在IE内核浏览器进程中注册通信协议之后,则所有采用相应通信协议的页面下载请求,都会传送到预设的外壳程序接口,即当发生任何采用相应通信协议(如http、https协议、mailto协议、FTP协议)的页面下载请求时,IE内核会通知或调用预设的外壳程序接口。
步骤103、当所述IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载,并在所述页面下载过程中向IE内核浏览器进程返回下载状态信息。
在具体实现中,当IE内核调用在通信协议注册过程中提供的IInternetProtocol接口的Start方法时,通过跨进程通信,将页面下载请求发送到下载进程,并返回操作符E_PENDING,通知IE内核操作正在执行中。当下载到数据后,下载进程会通知到发起下载的IE内核浏览器进程,IE内核浏览器进程调用IE内核提供的IInternetProtocolSink接口的相关方法,通知IE内核下载进度、下载到的数据等下载状态信息。
更具体而言,跨进程通信,是指将一个进程的请求转到另一个进程,在本实施例中即指将IE内核浏览器进程的页面下载请求转到下载进程,并在下载过程中,实时向IE内核报告下载进度和下载数据等下载状态信息。跨进程通信可以使用windows消息机制,并配合内核对象进行数据传输。例如,在IE浏览器进程中注册了http协议后,一旦有基于http协议的页面下载请求就会送到预设的浏览器外壳程序中。当IE内核调用所述外壳程序的时候,会将这个页面下载请求的相关信息都传递过来,外壳程序会将这些信息打包(放到一个数据块中,数据块中主要包括url、refresh、cookie等),然后通过Windows系统提供的标准管道通信,将此数据块发送到下载进程。下载过程中向浏览器进程发送的Windows消息,主要是告诉浏览器当前下载的进度。
简而言之,跨进程通信是双方的,首先,IE内核浏览器进程收到页面下载请求后,会通过跨进程通信,告诉下载进程那些文件需要下载。另一方面,当下载请求执行过程中,下载进程会向IE内核浏览器进程发送消息,通知其下载进度、下载数据等下载状态信息。
在本申请的一种优选实施例中,所述步骤103中,当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤具体可以包括以下子步骤:
子步骤S11、当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
子步骤S12、下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
子步骤S13、获取所述页面下载请求对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
子步骤S14、依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
在实际中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息,在这种情况下,所述页面下载请求对应的页面资源类型可以通过读取所述扩展名信息获取。
本实施例主要涉及通过资源排序进行下载优化的方案,是在下载进程控制下载的过程中实现的,也就是说,当浏览器进程接收到IE下载请求时,触发下载进程执行下载,在由下载器正式下载之前,下载管理器会对下载请求对应的资源进行排序。
在实际应用中,可以优先下载文本类型的文件(如html、css、js等类型的文件),将多媒体类型的文件(如图片、flash等大资源的文件)靠后下载,因为网页的展现并不依赖于它们。下载进程中的下载管理器内会有一个下载任务列表,根据优先级,可以确定将新增加的下载任务放到这个表中的那个位置。比如,html、css、js这些文本类型的文件都是网页打开时必须的,所以可以放入这个表的前面。其他的图片、flash等多媒体类型的文件则放入表尾。下载器会从表头中不停的取任务来开始下载。这样就实现了资源排序。
在实际中,每一个页面下载请求都对应一个下载任务,每个下载任务资源类型是一种。
例如,假设在浏览器中访问http://www.360.cn/,IE内核会产生5个下载请求,请求的内容/类型/顺序如下:
http://www.360.cn/index.htm;
http://www.360.cn/360safe.css;
http://www.360.cn/product.swf;
http://www.360.cn/360safe.png;
http://www.360.cn/frame.htm。
按照与IE下载请求产生一致的顺序,将上述页面下载请求从IE内核浏览器进程发送到下载进程。
假设现在下载进程内的下载任务列表为空。当我们收到http://www.360.cn/index.htm的页面下载请求时,因为表是空的,则直接放入队列内。如表1所示,当前的下载任务列表中只有一个请求。
表1:
index.htm |
接下来收到http://www.360.cn/360safe.css的页面下载请求,通过其扩展名可以得知这是一个文本文件,与htm是一样的级别,于是直接放到下载任务列表中第一个表项的后面位置。如表2所示,当前的下载任务列表中的请求排序情况是:
表2:
index.htm |
360safe.css |
继续收到http://www.360.cn/product.swf的页面下载请求,通过其扩展名可以得知其是一个flash文件,由于此种类型的文件最大,于是放入表的最末位置。
如表3所示,当前的下载任务列表中的请求排序情况是:
表3:
index.htm |
360safe.css |
product.swf |
继续收到http://www.360.cn/360safe.png的页面下载请求,通过其扩展名可以得知其是一个图片文件,由于此种类型文件的大小大于文本文件但小于flash类型的文件,于是将其插入到文本类型与flash类型的中间。
如表4所示,当前的下载任务列表中的请求排序情况是:
表4:
index.htm |
360safe.css |
360safe.png |
product.swf |
继续收到http://www.360.cn/frame.htm的请求,通过其扩展名可以得知其是一个htm文件,于是将其插入到所有文本类型的后面位置。
如表5所示,当前的下载任务列表中的请求排序情况是:
表5:
index.htm |
360safe.css |
frame.htm |
360safe.png |
product.swf |
这样就生成了下载任务列表。这个下载任务列表与原始请求顺序是不同的,按照这个下载任务列表进行下载,会优先下载文本,保证文字尽快显示,接下来显示图片,最后才轮到比较大的flash。
在本申请的另一种优选实施例中,所述步骤103中,当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤具体可以包括以下子步骤:
子步骤S21、当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
子步骤S22、下载进程获取所述页面下载请求对应的文件大小信息;
子步骤S23、判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
线程可以理解为下载的通道,单线程下载就是针对一个文件开启一个下载通道,多线程下载就是针对一个文件同时开启多个下载通道,具体而言,多线程下载其实就是同时向服务器请求单一文件的不同部分。
本实施例主要涉及通过针对超过预设阈值的大文件进行多线程下载的下载优化方案,是在下载进程控制下载的过程中实现的,也就是说,当浏览器进程接收到IE下载请求时,触发下载进程执行下载,在由下载器正式下载的时候,下载管理器会判断当前文件大小是否超过预设阈值,若是,则控制下载器采用多线程下载的方式对当前页面下载请求对应的文件进行下载。
在具体实现中,仅需向服务器通信一次,如发送一个标准的http请求,即可获取到文件大小,以及,是否支持多线程下载等信息。通过诸如flash,图片等多媒体类型的文件会比较大,针对实际需求,可以设置文件大小阈值,比如1M,当超过1M,则启动多线程下载。
在本申请的另一种优选实施例中,所述步骤103中,当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤具体可以包括以下子步骤:
子步骤S31、当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
子步骤S32、下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则从缓存中提取该文件;若否,则根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
更为优选的是,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤还包括:
在从缓存中提取文件进行下载的步骤之前,查询该文件写入缓存的时间是否超过预设期限,若是,则根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
本实施例主要涉及缓存读写的下载优化方案,是在下载进程控制下载的过程中实现的,也就是说,当浏览器进程接收到IE下载请求时,触发下载进程执行下载,在由下载器正式下载前,下载管理器会判断判断是从缓存读取还是实时下载,在由下载器正式下载后,将下载后的数据写入缓存。
在具体应用中,可以根据实际需求来决定某文件是否写入缓存、某文件已经缓存了是否可以直接使用等等。例如,如果某文件在本地缓存中刚刚进行过更新,则几分钟内可以完全不去服务器通信,直接读取本地缓存中的文件即可。或如,用浏览器访问http://www.360.cn/index.htm,先查看此文件是否在缓存中,如果没有则先下载然后放入缓存。如果有,则可以完全不必去服务器通信,直接使用,这样就加速了访问速度。
本实施例在实际中更为优选的做法是,不在每次IE启动时执行向服务器请求相应的缓存是否过期的操作的,而是让用户先使用缓存访问。在访问过后,再进行缓存的检查和更新。当然,这里的策略也可以参考所使用的缓存最后是什么时间更新的。如果刚刚更新不久,比如仅有几分钟或几个小时,就可以先使用缓存再检查。但如果缓存是几天以前的,则也可以在启动时就进行缓存检查,以避免用户到过旧的内容。
上述下载优化方案还可以组合应用,为使本领域技术人员更好地理解本申请,以下提供几种组合应用的示例:
示例1:
所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤具体可以包括如下子步骤:
子步骤S41、当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;其中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息;
子步骤S42、下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
子步骤S43、读取所述页面下载请求的扩展名信息获取对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
子步骤S44、依次处理所述下载任务列表中的页面下载请求,获取页面下载请求对应的文件大小信息;
子步骤S45、判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
示例2:
所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤具体可以包括如下子步骤:
子步骤S51、当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;其中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息;
子步骤S52、下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则查询该文件写入缓存的时间是否超过预设期限,若是,则根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存;若否,则从缓存中提取该文件;
子步骤S53、若所述页面下载请求相应的文件未被预先写入缓存中,则根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
其中,所述根据页面下载请求从服务器下载相应的文件的步骤包括:
子步骤S54、下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
子步骤S55、读取所述页面下载请求的扩展名信息获取对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
子步骤S56、依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
示例3:
所述当IE内核浏览器进程收到IE下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤可以包括如下子步骤:
子步骤S61、当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
子步骤S62、下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则查询该文件写入缓存的时间是否超过预设期限,若是,则根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存;若否,则从缓存中提取该文件;
子步骤S63、若所述页面下载请求相应的文件未被预先写入缓存中,则根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
其中,所述根据页面下载请求从服务器下载相应的文件的步骤包括:
子步骤S64、下载进程获取所述页面下载请求对应的文件大小信息;
子步骤S65、判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
示例4:
所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤具体可以包括如下子步骤:
子步骤S71、当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;其中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息;
子步骤S72、下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则查询该文件写入缓存的时间是否超过预设期限,若是,则根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存;若否,则从缓存中提取该文件;
子步骤S73、若所述页面下载请求相应的文件未被预先写入缓存中,则根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
其中,所述根据页面下载请求从服务器下载相应的文件的步骤包括:
子步骤S74、下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
子步骤S75、读取所述页面下载请求的扩展名信息获取对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
子步骤S76、依次处理所述下载任务列表中的页面下载请求,获取页面下载请求对应的文件大小信息;
子步骤S77、判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
当然,上述下载优化方案的各实施例及其组合均只用作示例,本领域技术人员采用其它下载优化方法均是可行的,本申请对此无需加以限制。
在具体实现中,本申请实施例还可以包括如下步骤:
步骤104、所述IE内核浏览器进程依据所述下载状态信息,对下载的页面数据进行解析、执行、和/或渲染的操作。
当下载进程完成下载操作后,将下载后的数据送回IE内核,由IE内核继续执行解析、执行、渲染的工作。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
参考图2,示出了本申请的一种IE内核浏览器的页面下载控制系统实施例的结构框图,具体可以包括如下模块:
启动模块201,用于启动IE内核浏览器进程,并启动预置的下载进程;
协议注册模块202,用于在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;
下载控制模块203,用于在所述IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载;
状态汇报模块204,用于在所述页面下载过程中向IE内核浏览器进程返回下载状态信息。
在本申请实施例的具体应用中,所述系统实施例还可以包括:
内核操作模块205,用于由所述IE内核浏览器进程依据所述下载状态信息,对下载的页面数据进行解析、执行、和/或渲染的操作。
在本申请的一种优选实施例中,所述下载控制模块203具体可以包括以下子模块:
请求传送子模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
任务添加子模块,用于由下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
排序子模块,用于获取所述页面下载请求对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
下载执行子模块,用于由依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
在具体实现中,所述页面下载请求中可以包括URL信息,所述URL信息中可以包括扩展名信息,在这种情况下,所述页面下载请求对应的页面资源类型可以通过读取所述扩展名信息获取。
在本申请的另一种优选实施例中,所述下载控制模块203具体可以包括以下子模块:
请求传送子模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
文件大小获取子模块,用于由下载进程获取所述页面下载请求对应的文件大小信息;
文件大小判断子模块,用于判断所述文件大小信息是否超过预设的文件大小阈值,若是,则调用多线程下载子模块;否则,调用单线程下载子模块;
多线程下载子模块,用于采用多线程下载的方式执行相应页面的下载操作;
单线程下载子模块,用于采用单线程下载的方式执行相应页面的下载操作。
在本申请的又一种优选实施例中,所述下载控制模块203具体可以包括以下子模块:
请求传送子模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
缓存判断子模块,用于由下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则触发缓存提取子模块;若否,则触发服务器下载子模块;
缓存提取子模块,用于从缓存中提取该文件;
服务器下载子模块,用于根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
更为优选的是,在本实施例中,所述下载控制模块还可以包括以下子模块:
缓存超期判断子模块,用于在触发缓存提取子模块之前,查询该文件写入缓存的时间是否超过预设期限,若是,则调用服务器下载子模块。
本领域技术人员易于理解的是,上述优选实施方案中下载控制模块203中的各个子模块还可以相互组合应用,具体可以包括以下示例:
示例1:
所述下载控制模块203具体可以包括以下子模块:
请求传送子模块,用于当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;其中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息;
任务添加子模块,用于由下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
资源排序子模块,用于读取所述页面下载请求的扩展名信息获取对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
依次处理所述下载任务列表中的页面下载请求,获取页面下载请求对应的文件大小信息;
文件大小判断子模块,用于判断所述文件大小信息是否超过预设的文件大小阈值,若是,则调用多线程下载子模块;否则,调用单线程下载子模块;
多线程下载子模块,用于采用多线程下载的方式执行相应页面的下载操作;
单线程下载子模块,用于采用单线程下载的方式执行相应页面的下载操作。
示例2:
所述下载控制模块203具体可以包括以下子模块:
请求传送子模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;其中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息;
缓存判断子模块,用于由下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则调用缓存超期判断子模块,若否,则调用服务器下载子模块;
缓存超期判断子模块,用于查询该文件写入缓存的时间是否超过预设期限,若是,则调用服务器下载子模块;若否,则调用缓存提取子模块;
缓存提取子模块,用于从缓存中提取该文件;
服务器下载子模块,用于根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存;其中,通过调用以下单元根据页面下载请求从服务器下载相应的文件:
任务添加单元,用于由下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
资源排序单元,用于读取所述页面下载请求的扩展名信息获取对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
下载执行单元,用于由依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
示例3:
所述下载控制模块203具体可以包括以下子模块:
请求传送子模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
缓存判断子模块,用于由下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则调用缓存超期判断子模块,若否,则调用服务器下载子模块;
缓存超期判断子模块,用于查询该文件写入缓存的时间是否超过预设期限,若是,则调用服务器下载子模块;若否,则调用缓存提取子模块;
缓存提取子模块,用于从缓存中提取该文件;
服务器下载子模块,用于根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存;其中,通过调用以下单元根据页面下载请求从服务器下载相应的文件:
文件大小获取单元,用于由下载进程获取所述页面下载请求对应的文件大小信息;
文件大小判断单元,用于判断所述文件大小信息是否超过预设的文件大小阈值,若是,则调用多线程下载单元;否则,调用单线程下载单元;
多线程下载单元,用于采用多线程下载的方式执行相应页面的下载操作;
单线程下载单元,用于采用单线程下载的方式执行相应页面的下载操作。
示例4:
所述下载控制模块203具体可以包括以下子模块:
请求传送子模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;其中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息;
缓存判断子模块,用于由下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则调用缓存超期判断子模块,若否,则调用服务器下载子模块;
缓存超期判断子模块,用于查询该文件写入缓存的时间是否超过预设期限,若是,则调用服务器下载子模块;若否,则调用缓存提取子模块;
缓存提取子模块,用于从缓存中提取该文件;
服务器下载子模块,用于根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存;其中,通过调用以下单元根据页面下载请求从服务器下载相应的文件:
任务添加单元,用于由下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
资源排序单元,用于读取所述页面下载请求的扩展名信息获取对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
文件大小获取单元,用于由依次处理所述下载任务列表中的页面下载请求,获取页面下载请求对应的文件大小信息;
文件大小判断单元,用于判断所述文件大小信息是否超过预设的文件大小阈值,若是,则调用多线程下载单元;否则,调用单线程下载单元;
多线程下载单元,用于采用多线程下载的方式执行相应页面的下载操作;
单线程下载单元,用于采用单线程下载的方式执行相应页面的下载操作。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上对本申请所提供的一种IE内核浏览器的页面下载控制方法和一种IE内核浏览器的页面下载控制系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (19)
1.一种IE内核浏览器的页面下载控制方法,其特征在于,包括:
启动IE内核浏览器进程,并启动预置的下载进程;
在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;
当所述IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载,并在所述页面下载过程中向IE内核浏览器进程返回下载状态信息。
2.如权利要求1所述的方法,其特征在于,还包括:
所述IE内核浏览器进程依据所述下载状态信息,对下载的页面数据进行解析、执行、和/或渲染的操作。
3.如权利要求1或2所述的方法,其特征在于,所述在IE内核浏览器进程中注册通信协议的步骤为,使用IInternetSession接口的RegisterNameSpace方法,在IE内核浏览器进程中注册通信协议,所述通信协议包括http协议、https协议、mailto协议和FTP协议。
4.如权利要求1或2所述的方法,其特征在于,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
获取所述页面下载请求对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
5.如权利要求4所述的方法,其特征在于,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息,所述页面下载请求对应的页面资源类型通过读取所述扩展名信息获取。
6.如权利要求1或2所述的方法,其特征在于,所述当IE内核浏览器进程收到IE下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
下载进程获取所述页面下载请求对应的文件大小信息;
判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
7.如权利要求1或2所述的方法,其特征在于,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则从缓存中提取该文件;若否,则根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
8.如权利要求7所述的方法,其特征在于,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤还包括:
在从缓存中提取文件进行下载的步骤之前,查询该文件写入缓存的时间是否超过预设期限,若是,则根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
9.如权利要求1或2所述的方法,其特征在于,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;其中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息;
下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
读取所述页面下载请求的扩展名信息获取对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
依次处理所述下载任务列表中的页面下载请求,获取页面下载请求对应的文件大小信息;
判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
10.如权利要求1或2所述的方法,其特征在于,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;其中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息;
下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则查询该文件写入缓存的时间是否超过预设期限,若是,则根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存;若否,则从缓存中提取该文件;
若所述页面下载请求相应的文件未被预先写入缓存中,则根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
其中,所述根据页面下载请求从服务器下载相应的文件的步骤包括:
下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
读取所述页面下载请求的扩展名信息获取对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
11.如权利要求1或2所述的方法,其特征在于,所述当IE内核浏览器进程收到IE下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则查询该文件写入缓存的时间是否超过预设期限,若是,则根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存;若否,则从缓存中提取该文件;
若所述页面下载请求相应的文件未被预先写入缓存中,则根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
其中,所述根据页面下载请求从服务器下载相应的文件的步骤包括:
下载进程获取所述页面下载请求对应的文件大小信息;
判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
12.如权利要求1或2所述的方法,其特征在于,所述当IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载的步骤包括:
当IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;其中,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息;
下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则查询该文件写入缓存的时间是否超过预设期限,若是,则根据页面下载请求从服务器下载相应的文件,并将该文件写入缓存;若否,则从缓存中提取该文件;
若所述页面下载请求相应的文件未被预先写入缓存中,则根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
其中,所述根据页面下载请求从服务器下载相应的文件的步骤包括:
下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
读取所述页面下载请求的扩展名信息获取对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
依次处理所述下载任务列表中的页面下载请求,获取页面下载请求对应的文件大小信息;
判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
13.一种IE内核浏览器的页面下载控制系统,其特征在于,包括:
启动模块,用于启动IE内核浏览器进程,并启动预置的下载进程;
协议注册模块,用于在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;
下载控制模块,用于在所述IE内核浏览器进程收到页面下载请求时,触发所述下载进程按照预设的下载规则控制页面下载;
状态汇报模块,用于在所述页面下载过程中向IE内核浏览器进程返回下载状态信息。
14.如权利要求13所述的系统,其特征在于,还包括:
内核操作模块,用于由所述IE内核浏览器进程依据所述下载状态信息,对下载的页面数据进行解析、执行、和/或渲染的操作。
15.如权利要求13或14所述的系统,其特征在于,所述下载控制模块包括:
请求传送子模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
任务添加子模块,用于由下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
排序子模块,用于获取所述页面下载请求对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
下载执行子模块,用于依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
16.如权利要求15所述的系统,其特征在于,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息,所述页面下载请求对应的页面资源类型通过读取所述扩展名信息获取。
17.如权利要求13或14所述的系统,其特征在于,所述下载控制模块包括:
请求传送子模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
文件大小获取子模块,用于由下载进程获取所述页面下载请求对应的文件大小信息;
文件大小判断子模块,用于判断所述文件大小信息是否超过预设的文件大小阈值,若是,则调用多线程下载子模块;否则,调用单线程下载子模块;
多线程下载子模块,用于采用多线程下载的方式执行相应页面的下载操作;
单线程下载子模块,用于采用单线程下载的方式执行相应页面的下载操作。
18.如权利要求13或14所述的系统,其特征在于,所述下载控制模块包括:
请求传送子模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
缓存判断子模块,用于由下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则触发缓存提取子模块;若否,则触发服务器下载子模块;
缓存提取子模块,用于从缓存中提取该文件;
服务器下载子模块,用于根据所述页面下载请求从服务器下载相应的文件,并将该文件写入缓存。
19.如权利要求18所述的系统,其特征在于,所述下载控制模块还包括:
缓存超期判断子模块,用于在触发缓存提取子模块之前,查询该文件写入缓存的时间是否超过预设期限,若是,则调用服务器下载子模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410065255.6A CN103838839B (zh) | 2011-09-26 | 2011-09-26 | 一种ie内核浏览器的页面下载控制方法和系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410065255.6A CN103838839B (zh) | 2011-09-26 | 2011-09-26 | 一种ie内核浏览器的页面下载控制方法和系统 |
CN201110289062.5A CN102368248B (zh) | 2011-09-26 | 2011-09-26 | 一种ie内核浏览器的页面下载控制方法和系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110289062.5A Division CN102368248B (zh) | 2011-09-26 | 2011-09-26 | 一种ie内核浏览器的页面下载控制方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103838839A true CN103838839A (zh) | 2014-06-04 |
CN103838839B CN103838839B (zh) | 2019-02-26 |
Family
ID=50802336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410065255.6A Expired - Fee Related CN103838839B (zh) | 2011-09-26 | 2011-09-26 | 一种ie内核浏览器的页面下载控制方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103838839B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268229A (zh) * | 2014-09-26 | 2015-01-07 | 北京金山安全软件有限公司 | 一种基于多进程浏览器的资源获得方法及装置 |
CN107153663A (zh) * | 2016-03-04 | 2017-09-12 | 中国移动通信集团北京有限公司 | 一种域名资源缓存方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645905A (zh) * | 2009-08-31 | 2010-02-10 | 深圳市茁壮网络股份有限公司 | 数据下载方法和数据上传方法及浏览器 |
CN101710327A (zh) * | 2009-12-04 | 2010-05-19 | 深圳创维数字技术股份有限公司 | 一种嵌入式浏览器本地临时文件的缓存方法 |
CN101763357A (zh) * | 2008-11-13 | 2010-06-30 | 北京搜狗科技发展有限公司 | 一种用于浏览器加载互联网资源的方法及系统 |
CN101964974A (zh) * | 2010-10-13 | 2011-02-02 | 中兴通讯股份有限公司 | 数据下载方法及移动终端 |
CN102158853A (zh) * | 2011-05-23 | 2011-08-17 | 广州市动景计算机科技有限公司 | 用于移动通讯设备终端浏览器的下载管理方法及装置 |
-
2011
- 2011-09-26 CN CN201410065255.6A patent/CN103838839B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763357A (zh) * | 2008-11-13 | 2010-06-30 | 北京搜狗科技发展有限公司 | 一种用于浏览器加载互联网资源的方法及系统 |
CN101645905A (zh) * | 2009-08-31 | 2010-02-10 | 深圳市茁壮网络股份有限公司 | 数据下载方法和数据上传方法及浏览器 |
CN101710327A (zh) * | 2009-12-04 | 2010-05-19 | 深圳创维数字技术股份有限公司 | 一种嵌入式浏览器本地临时文件的缓存方法 |
CN101964974A (zh) * | 2010-10-13 | 2011-02-02 | 中兴通讯股份有限公司 | 数据下载方法及移动终端 |
CN102158853A (zh) * | 2011-05-23 | 2011-08-17 | 广州市动景计算机科技有限公司 | 用于移动通讯设备终端浏览器的下载管理方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268229A (zh) * | 2014-09-26 | 2015-01-07 | 北京金山安全软件有限公司 | 一种基于多进程浏览器的资源获得方法及装置 |
CN104268229B (zh) * | 2014-09-26 | 2018-01-19 | 北京金山安全软件有限公司 | 一种基于多进程浏览器的资源获得方法及装置 |
CN107153663A (zh) * | 2016-03-04 | 2017-09-12 | 中国移动通信集团北京有限公司 | 一种域名资源缓存方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103838839B (zh) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102368213B (zh) | 一种ie内核浏览器的页面下载控制方法和系统 | |
CN102368248B (zh) | 一种ie内核浏览器的页面下载控制方法和系统 | |
CN102368249B (zh) | 一种ie内核浏览器的页面下载控制方法和系统 | |
US9235451B2 (en) | Browser kernel switching method | |
RU2604326C2 (ru) | Метод просмотра web-страниц, платформа webapp, метод и устройство для исполнения javascript для мобильных терминалов | |
US10180833B2 (en) | Cooperative web-assisted deep link redirection | |
US9483449B1 (en) | Optimizing page output through run-time reordering of page content | |
WO2016173200A1 (zh) | 用于检测恶意网址的方法和系统 | |
CN102567516B (zh) | 脚本加载方法及装置 | |
CN102368250B (zh) | 一种ie内核浏览器的页面下载控制方法和系统 | |
US20170199850A1 (en) | Method and system to decrease page load time by leveraging network latency | |
JP2009514045A (ja) | ウェブ・デバイスにおけるhtmlページの提示を改善するための方法およびシステム | |
CN109388766A (zh) | 页面加载的方法和装置 | |
CN108416021B (zh) | 一种浏览器网页内容处理方法、装置、电子设备及可读介质 | |
WO2020048189A1 (zh) | 图片生成 | |
US9971636B2 (en) | Methods for implementing web services and devices thereof | |
CN110365724B (zh) | 任务处理方法、装置及电子设备 | |
EP2176796A2 (en) | Method for media discovery | |
CN105683957A (zh) | 样式表推测性预加载 | |
CN108595698A (zh) | 图片加载方法、终端设备及介质 | |
CN108021594B (zh) | 一种网页展示方法、装置及系统 | |
CN103136238A (zh) | 将web页转换为wap页时对页面交互元素的处理方法和服务器 | |
US8112500B2 (en) | Technique of relaying communications between client apparatus and server apparatus | |
CN111079048A (zh) | 一种页面加载方法及装置 | |
WO2008113917A3 (fr) | Procede permettant de simuler le fonctionnement d'un dispositif ayant une architecture et un processeur determines a l'aide d'un autre dispositif connecte a un reseau informatique |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190226 Termination date: 20210926 |
|
CF01 | Termination of patent right due to non-payment of annual fee |