CN102368249A - 一种ie内核浏览器的页面下载控制方法和系统 - Google Patents
一种ie内核浏览器的页面下载控制方法和系统 Download PDFInfo
- Publication number
- CN102368249A CN102368249A CN2011102891083A CN201110289108A CN102368249A CN 102368249 A CN102368249 A CN 102368249A CN 2011102891083 A CN2011102891083 A CN 2011102891083A CN 201110289108 A CN201110289108 A CN 201110289108A CN 102368249 A CN102368249 A CN 102368249A
- Authority
- CN
- China
- Prior art keywords
- page
- download
- module
- downloading
- download 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
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种IE内核浏览器的页面下载控制方法和系统,本发明提供的方法包括:步骤S 1:启动IE内核浏览器进程,并启动预置的下载进程步骤S2:在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;骤S3:当所述IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;步骤S4:下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中;若是,则执行步骤S5;否则,执行步骤S6、S7和S8;步骤S5:从缓存中提取该文件;步骤S6:根据所述页面下载请求从服务器下载相应的文件;步骤S7:在所述下载过程中向IE内核浏览器进程返回下载状态信息;步骤S8:将下载的文件写入缓存。本发明可以有效控制IE内核浏览器的页面下载过程,提高页面下载的效率和稳定性。
Description
技术领域
本申请涉及浏览器的技术领域,特别是涉及一种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内核浏览器的页面下载控制方法,包括:
步骤S1:启动IE内核浏览器进程,并启动预置的下载进程;
步骤S2:在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;
步骤S3:当所述IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
步骤S4:下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中;若是,则执行步骤S5;否则,执行步骤S6、S7和S8;
步骤S5:从缓存中提取该文件;
步骤S6:根据所述页面下载请求从服务器下载相应的文件;
步骤S7:在所述下载过程中向IE内核浏览器进程返回下载状态信息;
步骤S8:将下载的文件写入缓存。
优选的是,在步骤S5之前,还包括:
步骤S41、查询该文件写入缓存的时间是否超过预设期限,若是,则执行步骤S6、S7和S8;否则,执行步骤S5。
优选的是,所述方法,还包括:
步骤S9:所述IE内核浏览器进程依据所述下载状态信息,对下载的页面数据进行解析、执行、和/或渲染的操作。
优选的是,所述在IE内核浏览器进程中注册通信协议的步骤为,使用IInternetSession接口的RegisterNameSpace方法,在IE内核浏览器进程中注册通信协议,所述通信协议包括http协议、https协议、mailto协议和FTP协议。
优选的是,所述步骤S6包括:
下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
获取所述页面下载请求对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
优选的是,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息,所述页面下载请求对应的页面资源类型通过读取所述扩展名信息获取。
优选的是,所述依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作的步骤进一步包括:
下载进程获取所述页面下载请求对应的文件大小信息;
判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
本申请还提供了一种IE内核浏览器的页面下载控制系统,其特征在于,包括:
启动模块,用于启动IE内核浏览器进程,并启动预置的下载进程;
协议注册模块,用于在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;
请求传送模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
缓存判断模块,用于由下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则触发缓存提取模块;若否,则触发服务器下载模块、状态汇报模块以及缓存写入模块;
缓存提取模块,用于从缓存中提取该文件;
服务器下载模块,用于根据所述页面下载请求从服务器下载相应的文件;
状态汇报模块,用于在所述下载过程中向IE内核浏览器进程返回下载状态信息;
缓存写入模块,用于将下载的文件写入缓存。
优选的是,所述系统,还包括:
缓存超期判断模块,用于查询该文件写入缓存的时间是否超过预设期限,若是,则调用服务器下载模块、状态汇报模块以及缓存写入模块;
若否,则调用缓存提取模块。
优选的是,所属系统,还包括:
内核操作模块,用于由所述IE内核浏览器进程依据所述下载状态信息,对下载的页面数据进行解析、执行、和/或渲染的操作。
优选的是,所述服务器下载模块包括:
任务添加子模块,用于由下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
排序子模块,用于获取所述页面下载请求对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
下载执行子模块,用于依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
优选的是,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息,所述页面下载请求对应的页面资源类型通过读取所述扩展名信息获取。
优选的是,所述下载执行子模块进一步包括:
文件大小获取单元,用于由下载进程获取所述页面下载请求对应的文件大小信息;
文件大小判断单元,用于判断所述文件大小信息是否超过预设的文件大小阈值,若是,则调用多线程下载单元;否则,调用单线程下载单元;
多线程下载单元,用于采用多线程下载的方式执行相应页面的下载操作;
单线程下载单元,用于采用单线程下载的方式执行相应页面的下载操作。
与现有技术相比,本申请具有以下优点:
本申请使用IE的协议管理扩展接口,来将IE内核浏览器的全部下载都自己接管,从而使嵌入IE内核浏览器的外壳程序,能够自行控制浏览器内核的下载,并将下载后的数据送回IE内核,让其继续执行解析、执行、渲染的工作。由于下载行为不发生在浏览器进程,当下载遇到问题程序崩溃时,浏览器进程不会随之崩溃,可以重新启动一个下载进程继续下载。因而,本申请可以有效控制IE内核浏览器的页面下载过程,以提高页面下载的效率和稳定性。
再者,本申请通过采用缓存读写、资源排序和多线程下载的下载优化方案,能提升下载速度和页面展现速度,充分发挥用户的带宽,提高资源利用率。
附图说明
图1是本申请的一种IE内核浏览器的页面下载控制方法实施例的步骤流程图;
图2是是本申请的一种IE内核浏览器的页面下载控制系统实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请的核心构思在于,使嵌入IE内核浏览器的外壳程序,能够自行控制浏览器内核的下载,并将下载后的数据送回IE内核,让其继续执行解析、执行、渲染的工作。
参考图1,示出了本申请的一种IE内核浏览器的页面下载控制方法实施例的步骤流程图,具体可以包括以下步骤:
步骤S 1、启动IE内核浏览器进程,并启动预置的下载进程;
在本申请实施例中,所述IE内核浏览器进程是指采用IE(InternetExplorer)浏览器内核的浏览器进程。现有技术中,浏览器内核负责对页面进行下载、解析、执行、渲染,而在本实施例中,IE浏览器内核仅用于完成解析、执行、渲染的操作,下载的操作由预置的下载进程完成。
公知的是,进程是一个正在执行的程序,即计算机中正在运行的程序实例;其可以分配给处理器并作为一个实体由处理器执行。从用户角度来看,浏览器进程可以理解为在任务管理器内所启动的浏览器代表的进程。
所述下载进程可以理解为IE内核浏览器的另外一个进程,是一个专门用于下载操作的进程。即所述下载进程专门用于下载,而不做其他操作。作为本申请实施例具体实现的一种示例,所述下载进程内部可以使用WinHTTP(WinHTTP的全称是Microsoft Windows HTTP Services,它提供给开发者一个HTTP客户端应用程序接口,通过这种API借助HTTP协议给其他的HTTP服务器发送请求)实现一个下载器,和一个下载管理器。即所述下载进程中可以包括一个下载管理器和一些下载器,其中,所述下载管理器可以用于按照预设的下载规则控制页面下载,例如对下载资源的请求进行排序、优化等;下载器则可以用于实现具体的下载操作,并通过下载管理器向IE内核浏览器进程报告下载情况,即下载状态信息。在实际中,这个下载进程就像一个服务,启动后随时等待被调用。
在本申请实施例中,所述IE内核浏览器进程启动时,所述下载进程也会启动,或者说,所述IE内核浏览器进程启动则会触发所述下载进程启动,以保证页面在浏览器中的正常展现。
步骤S2、在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;
在具体实现中,所述在IE内核浏览器进程中注册通信协议的步骤可以为,使用IInternetSession接口的RegisterNameSpace方法,在IE内核浏览器进程中注册通信协议,所述通信协议可以包括http协议、https协议、mailto协议和FTP协议等。
具体而言,IInternetSession接口的RegisterNameSpace方法,要求了一个固定格式的接口,使用这个方法在IE内核浏览器进程中注册通信协议之后,则所有采用相应通信协议的页面下载请求,都会传送到预设的外壳程序接口,即当发生任何采用相应通信协议(如http、https协议、mailto协议、FTP协议)的页面下载请求时,IE内核会通知或调用预设的外壳程序接口。
步骤S3:当所述IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
步骤S4:下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中;若是,则执行步骤S5;否则,执行步骤S6、S7和S8;
步骤S5:从缓存中提取该文件;
步骤S6:根据所述页面下载请求从服务器下载相应的文件;
步骤S7:在所述下载过程中向IE内核浏览器进程返回下载状态信息;
步骤S8:将下载的文件写入缓存。
在具体实现中,当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内核浏览器进程发送消息,通知其下载进度、下载数据等下载状态信息。
本申请实施例主要涉及缓存读写的下载优化方案,是在下载进程控制下载的过程中实现的,也就是说,当浏览器进程接收到IE下载请求时,触发下载进程执行下载,在由下载器正式下载前,下载管理器会判断是从缓存读取还是实时下载,在由下载器正式下载后,将下载后的数据写入缓存。
在具体应用中,可以根据实际需求来决定某文件是否写入缓存、某文件已经缓存了是否可以直接使用等等。例如,如果某文件在本地缓存中刚刚进行过更新,则几分钟内可以完全不去服务器通信,直接读取本地缓存中的文件即可。或如,用浏览器访问http://www.360.cn/index.htm,先查看此文件是否在缓存中,如果没有则先下载然后放入缓存。如果有,则可以完全不必去服务器通信,直接使用,这样就加速了访问速度。
在具体实现中,在步骤S5之前,还可以包括如下步骤:
步骤S41、查询该文件写入缓存的时间是否超过预设期限,若是,则执行步骤S6、S7和S8;否则,执行步骤S5。
本实施例在实际中更为优选的做法是,不在每次IE启动时执行向服务器请求相应的缓存是否过期的操作的,而是让用户先使用缓存访问。在访问过后,再进行缓存的检查和更新。当然,这里的策略也可以参考所使用的缓存最后是什么时间更新的。如果刚刚更新不久,比如仅有几分钟或几个小时,就可以先使用缓存再检查。但如果缓存是几天以前的,则也可以在启动时就进行缓存检查,以避免用户到过旧的内容。
在具体实现中,本申请实施例还可以包括如下步骤:
步骤S9、所述IE内核浏览器进程依据所述下载状态信息,对下载的页面数据进行解析、执行、和/或渲染的操作。
当下载进程完成下载操作后,将下载后的数据送回IE内核,由IE内核继续执行解析、执行、渲染的工作。
在本申请的一种优选实施例中,所述步骤S6具体可以包括以下子步骤:
子步骤S11、下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
子步骤S12、获取所述页面下载请求对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
子步骤S13、依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
在实际中,所述页面下载请求中包括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。
更为优选的是,所述步骤S13中,所述依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作的步骤进一步包括:
子步骤S13-1、下载进程获取所述页面下载请求对应的文件大小信息;
子步骤S13-2、判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
线程可以理解为下载的通道,单线程下载就是针对一个文件开启一个下载通道,多线程下载就是针对一个文件同时开启多个下载通道,具体而言,多线程下载其实就是同时向服务器请求单一文件的不同部分。
本实施例主要涉及通过针对超过预设阈值的大文件进行多线程下载的下载优化方案,是在下载进程控制下载的过程中实现的,也就是说,当浏览器进程接收到IE下载请求时,触发下载进程执行下载,在由下载器正式下载的时候,下载管理器会判断当前文件大小是否超过预设阈值,若是,则控制下载器采用多线程下载的方式对当前页面下载请求对应的文件进行下载。
在具体实现中,仅需向服务器通信一次,如发送一个标准的http请求,即可获取到文件大小,以及,是否支持多线程下载等信息。通过诸如flash,图片等多媒体类型的文件会比较大,针对实际需求,可以设置文件大小阈值,比如1M,当超过1M,则启动多线程下载。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
参考图2,示出了本申请的一种IE内核浏览器的页面下载控制系统实施例的结构框图,具体可以包括如下模块:
启动模块201,用于启动IE内核浏览器进程,并启动预置的下载进程;
协议注册模块202,用于在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;
请求传送模块203,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
缓存判断模块204,用于由下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则触发缓存提取模块205;若否,则触发服务器下载模块206、状态汇报模块207以及缓存写入模块208;
缓存提取模块205,用于从缓存中提取该文件;
服务器下载模块206,用于根据所述页面下载请求从服务器下载相应的文件;
状态汇报模块207,用于在所述下载过程中向IE内核浏览器进程返回下载状态信息;
缓存写入模块208,用于将下载的文件写入缓存。
在本申请的一种优选实施例中,所述系统实施例还可以包括如下模块:
缓存超期判断模块,用于查询该文件写入缓存的时间是否超过预设期限,若是,则调用服务器下载模块、状态汇报模块以及缓存写入模块;
若否,则调用缓存提取模块。
在具体实现中,所述系统实施例还可以包括如下模块:
内核操作模块,用于由所述IE内核浏览器进程依据所述下载状态信息,对下载的页面数据进行解析、执行、和/或渲染的操作。
在本申请的一种优选实施例中,所述服务器下载模块可以包括以下子模块:
任务添加子模块,用于由下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
排序子模块,用于获取所述页面下载请求对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
下载执行子模块,用于依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
其中,所述页面下载请求中可以包括URL信息,所述URL信息中包括扩展名信息,在这种情况下,所述页面下载请求对应的页面资源类型可以通过读取所述扩展名信息获取。
更为优选的是,所述下载执行子模块可以进一步包括以下单元:
文件大小获取单元,用于由下载进程获取所述页面下载请求对应的文件大小信息;
文件大小判断单元,用于判断所述文件大小信息是否超过预设的文件大小阈值,若是,则调用多线程下载单元;否则,调用单线程下载单元;
多线程下载单元,用于采用多线程下载的方式执行相应页面的下载操作;
单线程下载单元,用于采用单线程下载的方式执行相应页面的下载操作。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上对本申请所提供的一种IE内核浏览器的页面下载控制方法和一种IE内核浏览器的页面下载控制系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种IE内核浏览器的页面下载控制方法,其特征在于,包括:
步骤S1:启动IE内核浏览器进程,并启动预置的下载进程;
步骤S2:在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;
步骤S3:当所述IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
步骤S4:下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中;若是,则执行步骤S5;否则,执行步骤S6、S7和S8;
步骤S5:从缓存中提取该文件;
步骤S6:根据所述页面下载请求从服务器下载相应的文件;
步骤S7:在所述下载过程中向IE内核浏览器进程返回下载状态信息;
步骤S8:将下载的文件写入缓存。
2.如权利要求1所述的方法,其特征在于,在步骤S5之前,还包括:
步骤S41、查询该文件写入缓存的时间是否超过预设期限,若是,则执行步骤S6、S7和S8;否则,执行步骤S5。
3.如权利要求1或2所述的方法,其特征在于,还包括:
步骤S9:所述IE内核浏览器进程依据所述下载状态信息,对下载的页面数据进行解析、执行、和/或渲染的操作。
4.如权利要求3所述的方法,其特征在于,所述在IE内核浏览器进程中注册通信协议的步骤为,使用IInternetSession接口的RegisterNameSpace方法,在IE内核浏览器进程中注册通信协议,所述通信协议包括http协议、https协议、mailto协议和FTP协议。
5.如权利要求1或2所述的方法,其特征在于,所述步骤S6包括:
下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
获取所述页面下载请求对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
6.如权利要求5所述的方法,其特征在于,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息,所述页面下载请求对应的页面资源类型通过读取所述扩展名信息获取。
7.如权利要求6所述的方法,其特征在于,所述依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作的步骤进一步包括:
下载进程获取所述页面下载请求对应的文件大小信息;
判断所述文件大小信息是否超过预设的文件大小阈值,若是,则采用多线程下载的方式执行相应页面的下载操作,否则,采用单线程下载的方式执行相应页面的下载操作。
8.一种IE内核浏览器的页面下载控制系统,其特征在于,包括:
启动模块,用于启动IE内核浏览器进程,并启动预置的下载进程;
协议注册模块,用于在所述IE内核浏览器进程中注册通信协议,等待基于相应通信协议的页面下载请求;
请求传送模块,用于在IE内核浏览器进程收到页面下载请求时,将所述页面下载请求发送给下载进程;
缓存判断模块,用于由下载进程根据所述页面下载请求判断所请求的文件是否已被预先写入缓存中,若是,则触发缓存提取模块;若否,则触发服务器下载模块、状态汇报模块以及缓存写入模块;
缓存提取模块,用于从缓存中提取该文件;
服务器下载模块,用于根据所述页面下载请求从服务器下载相应的文件;
状态汇报模块,用于在所述下载过程中向IE内核浏览器进程返回下载状态信息;
缓存写入模块,用于将下载的文件写入缓存。
9.如权利要求8所述的系统,其特征在于,还包括:
缓存超期判断模块,用于查询该文件写入缓存的时间是否超过预设期限,若是,则调用服务器下载模块、状态汇报模块以及缓存写入模块;
若否,则调用缓存提取模块。
10.如权利要求8或9所述的系统,其特征在于,还包括:
内核操作模块,用于由所述IE内核浏览器进程依据所述下载状态信息,对下载的页面数据进行解析、执行、和/或渲染的操作。
11.如权利要求8或9所述的系统,其特征在于,所述服务器下载模块包括:
任务添加子模块,用于由下载进程将所述页面下载请求添加至预先生成的下载任务列表中;
排序子模块,用于获取所述页面下载请求对应的页面资源类型,在所述下载任务列表中,按照所述页面资源类型对页面下载请求进行排序;
下载执行子模块,用于依次处理所述下载任务列表中的页面下载请求,执行相应的页面下载操作。
12.如权利要求11所述的系统,其特征在于,所述页面下载请求中包括URL信息,所述URL信息中包括扩展名信息,所述页面下载请求对应的页面资源类型通过读取所述扩展名信息获取。
13.如权利要求8或9所述的系统,其特征在于,所述下载执行子模块进一步包括:
文件大小获取单元,用于由下载进程获取所述页面下载请求对应的文件大小信息;
文件大小判断单元,用于判断所述文件大小信息是否超过预设的文件大小阈值,若是,则调用多线程下载单元;否则,调用单线程下载单元;
多线程下载单元,用于采用多线程下载的方式执行相应页面的下载操作;
单线程下载单元,用于采用单线程下载的方式执行相应页面的下载操作。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110289108.3A CN102368249B (zh) | 2011-09-26 | 2011-09-26 | 一种ie内核浏览器的页面下载控制方法和系统 |
US14/347,630 US20140237133A1 (en) | 2011-09-26 | 2012-09-24 | Page download control method, system and program for ie core browser |
PCT/CN2012/081855 WO2013044774A1 (zh) | 2011-09-26 | 2012-09-24 | 一种ie内核浏览器的页面下载控制方法、系统以及程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110289108.3A CN102368249B (zh) | 2011-09-26 | 2011-09-26 | 一种ie内核浏览器的页面下载控制方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102368249A true CN102368249A (zh) | 2012-03-07 |
CN102368249B CN102368249B (zh) | 2014-05-14 |
Family
ID=45760814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110289108.3A Expired - Fee Related CN102368249B (zh) | 2011-09-26 | 2011-09-26 | 一种ie内核浏览器的页面下载控制方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102368249B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618776A (zh) * | 2013-11-20 | 2014-03-05 | 乐视网信息技术(北京)股份有限公司 | 一种基于cdn的广告素材下载方法及装置 |
CN103685381A (zh) * | 2012-09-12 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种网页资源下载方法、系统和装置 |
CN103902355B (zh) * | 2012-12-26 | 2018-04-27 | 蓝网科技股份有限公司 | 一种医学影像快速加载方法 |
CN108255890A (zh) * | 2016-12-29 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 页面的处理方法和装置 |
CN108280798A (zh) * | 2016-12-30 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 一种浏览器内核渲染显示的方法和装置 |
CN108600368A (zh) * | 2018-04-25 | 2018-09-28 | 青岛海信电器股份有限公司 | 一种hls网络视频下载优化方法及装置 |
TWI718970B (zh) * | 2020-06-29 | 2021-02-11 | 威聯通科技股份有限公司 | 線上檔案傳輸任務排程方法及利用其之儲存設備 |
CN118041929A (zh) * | 2024-04-12 | 2024-05-14 | 云筑信息科技(成都)有限公司 | 一种基于流式实现浏览器大文件分片下载的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030115295A1 (en) * | 1999-08-18 | 2003-06-19 | International Business Machines Corporation | High performance client/server editor |
CN101710327A (zh) * | 2009-12-04 | 2010-05-19 | 深圳创维数字技术股份有限公司 | 一种嵌入式浏览器本地临时文件的缓存方法 |
WO2011011130A1 (en) * | 2009-07-20 | 2011-01-27 | Facebook, Inc. | Monitoring a background process in a web browser and providing status of same |
-
2011
- 2011-09-26 CN CN201110289108.3A patent/CN102368249B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030115295A1 (en) * | 1999-08-18 | 2003-06-19 | International Business Machines Corporation | High performance client/server editor |
WO2011011130A1 (en) * | 2009-07-20 | 2011-01-27 | Facebook, Inc. | Monitoring a background process in a web browser and providing status of same |
CN101710327A (zh) * | 2009-12-04 | 2010-05-19 | 深圳创维数字技术股份有限公司 | 一种嵌入式浏览器本地临时文件的缓存方法 |
Non-Patent Citations (1)
Title |
---|
翟伟画: "PC机上基于IE内核的网页浏览器开发", 《中国优秀硕士学位论文全文数据库信息科技辑》, 15 November 2009 (2009-11-15), pages 1 - 67 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685381A (zh) * | 2012-09-12 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种网页资源下载方法、系统和装置 |
CN103685381B (zh) * | 2012-09-12 | 2015-07-15 | 腾讯科技(深圳)有限公司 | 一种网页资源下载方法、系统和装置 |
CN103902355B (zh) * | 2012-12-26 | 2018-04-27 | 蓝网科技股份有限公司 | 一种医学影像快速加载方法 |
CN103618776A (zh) * | 2013-11-20 | 2014-03-05 | 乐视网信息技术(北京)股份有限公司 | 一种基于cdn的广告素材下载方法及装置 |
CN108255890A (zh) * | 2016-12-29 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 页面的处理方法和装置 |
CN108255890B (zh) * | 2016-12-29 | 2020-08-11 | 腾讯科技(深圳)有限公司 | 页面的处理方法和装置 |
CN108280798A (zh) * | 2016-12-30 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 一种浏览器内核渲染显示的方法和装置 |
CN108600368A (zh) * | 2018-04-25 | 2018-09-28 | 青岛海信电器股份有限公司 | 一种hls网络视频下载优化方法及装置 |
TWI718970B (zh) * | 2020-06-29 | 2021-02-11 | 威聯通科技股份有限公司 | 線上檔案傳輸任務排程方法及利用其之儲存設備 |
CN118041929A (zh) * | 2024-04-12 | 2024-05-14 | 云筑信息科技(成都)有限公司 | 一种基于流式实现浏览器大文件分片下载的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102368249B (zh) | 2014-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102368213B (zh) | 一种ie内核浏览器的页面下载控制方法和系统 | |
CN102368249B (zh) | 一种ie内核浏览器的页面下载控制方法和系统 | |
CN102368248B (zh) | 一种ie内核浏览器的页面下载控制方法和系统 | |
CN101147145B (zh) | 基于嵌入式web的管理方法 | |
JP4398462B2 (ja) | ウェブ・デバイスにおけるhtmlページの提示を改善するための方法およびシステム | |
CN102375882B (zh) | 一种快速访问网页的方法、装置及一种浏览器 | |
US9235451B2 (en) | Browser kernel switching method | |
CA2842737C (en) | Web browsing enhanced by cloud computing | |
CN106776761B (zh) | 一种移动浏览器渲染网页的方法及装置 | |
CN100535900C (zh) | 用于提供异步门户页的方法和系统 | |
CN102368250B (zh) | 一种ie内核浏览器的页面下载控制方法和系统 | |
CN102567516B (zh) | 脚本加载方法及装置 | |
US20080114773A1 (en) | Apparatus and method for prefetching web page | |
US20090106296A1 (en) | Method and system for automated form aggregation | |
US20140143647A1 (en) | Method for improving browser cache by reducing duplicate stored content | |
WO2013112285A1 (en) | Methods for transforming requests for web content and devices thereof | |
CN108021594B (zh) | 一种网页展示方法、装置及系统 | |
WO2009009123A2 (en) | Method for media discovery | |
JP2012501498A (ja) | ウェブサイトについての代替ユーザエクスペリエンスを発見する方法 | |
KR100749845B1 (ko) | 모바일 액티브 페이지 기능을 제공하는 이동 단말 및 그의무선 인터넷 서비스 제공 방법 | |
WO2012171391A1 (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 | |
CN112672187B (zh) | 页面生成方法、装置、计算机设备及可读存储介质 | |
CN103347069A (zh) | 网络访问的实现方法及装置 | |
CN103838839A (zh) | 一种ie内核浏览器的页面下载控制方法和系统 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140514 Termination date: 20210926 |