网页预加载方法与系统的制作方法

文档序号:6376268阅读:201来源:国知局
专利名称:网页预加载方法与系统的制作方法
技术领域
本申请涉及网络技术领域,特别是涉及ー种网页预加载方法与系统。
背景技术
在传统的用户网络浏览情景下,浏览器需要等到用户点击网页链接后才开始对页面中的各资源不断地进行下载、运行,直到相关资源全部下载完成后,才能够完成页面展现。在这种情景下,用户从触发页面的链接到看到该链接对应的完整页面一般需要超过10秒的时间。如果此链接对应的网站代码设计不合理,会导致等待时间更长,使页面加载时间过长。 为此,很多浏览器会分析用户的行为,从而对用户潜在点击的链接进行预测,并通过浏览器进行预加载,进而减少页面的加载时间。当用户点击已经预加载的结果后,就会直接从内存获取对应网页资源数据,达到加速显示的效果。其基本的预加载流程包括(I)点击预测浏览器会预测用户接下来的点击链接,提前为用户发起网络请求;(2)资源下载在用户点击链接前,浏览器会将对应网页全部资源数据保存在本地缓存中;(3)页面资源全部下载完后,当用户点击链接时,下载的页面资源被加载到主页面上。可见,当用户点击链接后,此时浏览器会直接使用浏览器中的缓存数据来代替原有的网络请求得到的资源。在最佳状态下,本地的数据获取时间可以忽略不计,因此远远小于网络上资源下载的时间消耗,提高提升浏览速度,最终提升用户体验。但是,对这种简单预加载策略进行实验和评估,效果并不是十分理想。这是因为,如果浏览器下载当前显示页面对应的全部资源时,整个网络连接数和下载数据量会大幅度提升。这样不仅导致客户端网络拥堵、影响用户正常的网络浏览;而且ー些未被触发的页面对应的全部资源也进行了预加载,会造成大量非必要的数据进行传输,从而大大增加预加载资源成本。可见,现有的预加载方案无法在显示效果和预加载资源成本之间达到平衡,导致加载页面的速度过慢,或者资源成本高,从而降低了被触发页面的显示效率。

发明内容
本申请提供了一种网页预加载方法与系统,以解决现有的预加载方案,无法在显示效果和预加载资源成本之间达到平衡,导致用户浏览体验差的问题。为了解决上述问题,本申请公开了一种网页预加载方法,包括获取网页的正常显示时间和所述网页中各脚本的加载时间;对所述网页的正常显示时间和所述网页中各脚本的加载时间进行分析,从所述网页对应的各脚本中确定特定的脚本;调用目标页面对应的特定的脚本预加载至缓存中;根据所述缓存中特定的脚本对所述目标页面中的被触发链接进行渲染,使所述被触发链接对应的页面内容正常显示。优选地,在所述根据所述缓存中特定的脚本对所述目标页面中的被触发链接进行渲染,使所述被触发链接对应的页面内容正常显示的步骤之后,还包括调用所述被触发链接对应的页面中除所述特定的脚本外其他脚本进行加载。
优选地,所述对所述网页的正常显示时间和所述网页中各脚本的加载时间进行分析时将加载时间小于或等于所述网页的正常显示时间的脚本确定为所述网页的特定的脚本。优选地,所述获取网页的正常显示时间和所述网页中各脚本的加载时间的步骤包括通过对所述网页进行模拟渲染,对相应页面的渲染效果进行采样,获取所述网页的正常显示时间和所述网页中各脚本的加载时间。优选地,所述方法还包括将所述特定的脚本的信息和所述除特定的脚本外其他脚本的信息存储到脚本列表中;所述调用目标页面对应的特定的脚本预加载至缓存中的步骤包括根据所述脚本列表中目标页面的特定的脚本的信息和所述除特定的脚本外其他脚本的信息,确定客户端待调用的目标页面对应的特定的脚本,井向服务器发送请求,预加载所述对应的特定的脚本至缓存中供目标页面调用。
优选地,所述特定的脚本的信息为所述特定的脚本对应的加载时间。优选地,所述调用目标页面对应的特定的脚本预加载至缓存中的步骤包括在提交搜索请求至搜索引擎后,调用搜索结果中目标页面对应的特定的脚本预加载至缓存中。为了解决上述问题,本申请还公开了ー种网页预加载系统,包括获取模块,用于获取网页的正常显示时间和所述网页中各脚本的加载时间;确定模块,用于对所述网页的正常显示时间和所述网页中各脚本的加载时间进行分析,从所述网页对应的各脚本中确定特定的脚本;预加载模块,用于调用目标页面对应的特定的脚本预加载至缓存中;渲染模块,用于根据所述缓存中特定的脚本对所述目标页面中的被触发链接进行渲染,使所述被触发链接对应的页面内容正常显示。优选地,所述确定模块,用于将加载时间小于或等于所述网页的正常显示时间的脚本确定为所述网页的特定的脚本。优选地,所述获取模块,用于通过对所述网页进行模拟渲染,在每个脚本加载完毕时对相应页面的渲染效果进行采样,获取所述网页的正常显示时间和所述网页中各脚本的加载时间。与现有技术相比,本申请具有以下优点本申请中,服务器端先收集获取全网全部或部分网页的正常显示时间和网页中各脚本的加载时间,进而进行分析确定各网页的特定的脚本;当客户端进行预加载时,调用目标页面对应的特定的脚本预加载至缓存中。通过实际分析,如果客户端浏览器只下载特定的脚本,如构成主页面显示要素的脚本,而暂不下载除特定的脚本外的其他脚本,如动态显示效果的脚本,这些脚本往往只是影响页面展现的美观程度,对页面中展示的页面内容影响不大。在此基础上,本申请首先对加载时间过长的脚本进行过滤,即先行将特定的脚本加载至浏览器的缓存中,在被触发页面中的其他元素显示完毕后,再通知浏览器将被触发页面中过滤掉的、加载时间过长的脚本进行加载,从而减少非必要的数据的网络下载量,カロ快了用户在目标页面中点击被触发链接时的页面渲染速度,降低了预加载资源成本,而且缓存中特定的脚本保证了页面能够正常展现,在用户查看页面内容时再展现加载时间过长的脚本,保证了页面的显示效果,从而使本方案在页面的显示效果和预加载资源成本之间达到平衡,高效地加载了被触发链接对应页面的页面内容。


图I是根据本申请实施例一的一种网页预加载方法的步骤流程图;图2是根据本申请实施例ニ的一种网页预加载方法的步骤流程图;图3是根据本申请实施例三的一种网页预加载方法的步骤流程图;
图4是图3所示实施例中网页脚本划分的示意图;图5是根据本申请实施例四的一种网页预加载方法的步骤流程图;图6是根据本申请实施例五的ー种网页预加载系统的结构框图。
具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本申请作进一步详细的说明。实施例一參照图1,示出了根据本申请实施例一的一种网页预加载方法的步骤流程图。本实施例的网页预加载方法包括以下步骤步骤SlO :服务器获取网页的正常显示时间和网页中各脚本的加载时间。步骤S20 :服务器对网页的正常显示时间和网页中各脚本的加载时间进行分析,从网页对应的各脚本中确定特定的脚本。步骤S30 :客户端调用目标页面对应的特定的脚本预加载至缓存中。步骤S40 :客户端根据缓存中特定的脚本对目标页面中的被触发链接进行渲染,使被触发链接对应的页面内容正常显示。当目标页面中相应的链接被触发时,客户端从缓存中获取已预加载的特定脚本,使用该特定的脚本进行渲染,使得被触发链接对应的页面内容能够快速正常显示,高效地加载了被触发链接对应页面的页面内容。本实施例中,服务器端先收集获取全网全部或部分网页的正常显示时间和网页中各脚本的加载时间,进而进行分析确定各网页的特定的脚本;当客户端进行预加载时,调用目标页面对应的特定的脚本预加载至缓存中。通过实际分析,如果客户端浏览器只下载特定的脚本,如构成主页面显示要素的脚本,而暂不下载除特定的脚本外的其他脚本,如动态显示效果的脚本,这些脚本往往只是影响页面展现的美观程度,对页面中展示的页面内容影响不大。在此基础上,本实施例首先对加载时间过长的脚本进行过滤,即先行将特定的脚本加载至浏览器的缓存中,在被触发页面中的其他元素显示完毕后,再通知浏览器将被触发页面中对应被过滤掉的、加载时间过长的脚本进行加载,从而减少非必要的数据的网络下载量,加快了用户在目标页面中点击被触发链接时的页面渲染速度,降低了预加载资源成本,而且缓存中特定的脚本保证了页面能够正常展现,在用户查看页面内容时再展现加载时间过长的脚本,保证了页面的显示效果,从而使本方案在页面的显示效果和预加载资源成本之间达到平衡,高效地加载了被触发链接对应页面的页面内容。实施例ニ參照图2,示出了根据本申请实施例ニ的一种网页预加载方法的步骤流程图。本实施例从服务器端对本申请的网页预加载方法进行描述,其中,网页的特定的脚本为完成网页渲染所必需的脚本。本实施例的网页预加载方法包括以下步骤步骤S102 :服务器获取网页的正常显示时间和网页中各脚本的加载时间。本步骤中,服务器收集获取全网中全部或部分网页的正常显示时间,以及这些网页中各脚本的加载时间。网页的正常显示时间通常是指从页面打开网页开始,到页面已经完成页面结构渲染,可以供用户进行浏览为止的时间间隔。步骤S104 :服务器对网页的正常显示时间和网页中各脚本的加载时间进行分析,从所述网页对应的各脚本中确定特定的脚本。通过对网页的正常显示时间和网页中各脚本的加载时间进行分析,将网页对应的 各脚本进行划分,将加载时间小于或等于所述网页的正常显示时间的脚本确定为所述网页的特定的脚本。由于所述特定的脚本在页面正常显示完毕前即加载完毕,即页面正常显示需要依赖所述特定的脚本完成,则特定的脚本为构成页面的基本元素,是完成网页渲染的必需脚本。反之,除所述特定的脚本外的其他脚本在网页的正常显示时间之后加载完成,即网页的正常显示不依赖这些脚本,则这些除所述特定的脚本外的其他脚本构成页面的非基本元素,仅提高了页面的动态效果,不影响用户对该被触发网页的信息浏览,为完成该网页渲染的非必需脚本,这些非必需脚本可在用户阅读刚刚正常显示的网页时再另行加载。因此,所述特定的脚本是网页的关键资源,是页面基本的展现内容完成前已使用的网络资源,如果此资源下载失败,页面无法正常的渲染,无法满足用户的基础浏览需求;除所述特定的脚本外的其他脚本也即网页的非关键资源,是页面基本展现内容完成后下载的网络资源,如异步的统计脚本或广告,这些资源即使不下载,也不影响页面的正常渲染,用户依然能够浏览网页。步骤S106 :服务器根据获取的捜索结果中的目标页面,向客户端发送对应于捜索结果中目标页面对应的特定的脚本供客户端预加载。本实施例应用于网页搜索的情形,在用户输入捜索条目后会得到相应的搜索结果,服务器根据获取的这些搜索结果中的各目标页面,进而向客户端发送相应的目标页面对应的特定的脚本供客户端预加载。预加载一般是指在用户点击网页链接前,对用户的网页点击行为进行分析预测,根据预测的结果向用户所在的客户端发送相应的网页资源供客户端预加载。本实施例中,可以直接根据搜索结果,在接收到网页的网页点击触发前(即用户点击网页链接前),向用户所在的客户端发送搜索结果对应的全部或部分(如前N个)目标网页对应的特定的脚本供客户端预加载。预加载的网页资源可以保存在客户端的缓存中,这样,当用户点击相应的目标网页的链接时,可以直接从缓存中取出对应的特定的脚本进行加载,以达到加速效果。通过本实施例,服务器端先收集获取全网中全部或部分网页的正常显示时间和网页中各脚本的加载时间,进而进行分析确定各网页的特定的脚本;当用户使用搜索引擎进行搜索时,服务器获取捜索结果,并选取需要预加载的目标页面,向客户端发送目标网页的特定的脚本供客户端进行预加载。由于搜索结果通常在展示捜索结果时,浏览器的初始显示区域通常为搜索结果页的前半部分,这部分通常少于七条搜索条目,因此,本实施例中,所述目标页面为捜索结果中首页的前七条条目对应的页面。用户在查看这部分捜索条目,和/或在用户滑动鼠标滚轮准备查看前七条搜索条目之外的余下条目吋,再将所述余下条目对应的页面作为目标页面进行预加载。通过实际分析,如果客户端浏览器只下载特定的脚本,而增强页面的动态效果的除特定脚本外的其他脚本不下载时,如JS和CSS,虽然ー些动态效果暂时无法显示,但仍能展示页面的基本信息。在此基础上,本实施例首先对预加载的网页脚本进行有效筛选,通过对预加载的网页脚本进行筛选,能够平衡各时段的网络下载量,加快了用户在目标页面中点击被触发链接时的页面渲染速度。这样,使得预加载资源被最大化利用,从整体上提升预加载的效果,使本方案在页面的显示效果和预加载资源成本之间达到平衡,高效地加载了被触发链接对应页面的页面内容。步骤S108 : 客户端根据缓存中特定的脚本对目标页面中的被触发链接进行渲染,使被触发链接对应的页面内容正常显示。用户触发目标页面中的任ー链接,被触发链接调用缓存中对应的特定的脚本,根据所述特定的脚本对所述链接进行渲染,从而将链接对应的页面内容正常显示。实施例三參照图3,示出了根据本申请实施例三的一种网页预加载方法的步骤流程图。本实施例的网页预加载方法包括以下步骤步骤S202 :服务器获取网页的正常显示时间和网页各脚本的加载时间;将加载时间小于或等于网页的正常显示时间的脚本确定为网页的关键脚本(即网页的特定脚本),将加载时间大于网页的正常显示时间的脚本确定为网页的非关键脚本(即除特定的脚本外的其他脚本)。本实施例中,服务器记录全网中各网页页面对应脚本的加载时间并进行分析,确定各网页的关键脚本和非关键脚本。以某网页为例,如图4所示,设定该网页的正常显示时间(即从页面打开网页开始,到页面的基本内容显示完毕的时间间隔)为ls,则可确定该网页脚本中,加载时间小于或等于Is的脚本为关键脚本,大于Is的脚本为非关键脚本,可见,图4中,加载时间为O. 3s和O. 5s的脚本A和C为关键脚本,而加载时间为I. 2s的脚本B为非关键脚本。通过网页的正常显示时间和网页各脚本的加载时间的比较确定网页的关键脚本和非关键脚本,实现简単,效率高,且节约加载时间。优选地,可以通过在服务器端对全网中的各网页进行模拟渲染,在每个脚本加载完毕时对相应页面的渲染效果进行采样,获取网页的正常显示时间和网页各脚本的加载时间。也即,分析全网中各页面对应脚本的加载时间吋,对各页面进行模拟渲染,在每个脚本加载完毕时对相应页面的渲染效果进行采样,将保证页面正常渲染的脚本(即加载时间小于或等于网页的正常显示时间的脚本)作为关键脚本。通过对网页进行模拟渲染的方式获取网页的正常显示时间和网页各脚本的加载时间,能够较为准确有效地确定脚本是否为关键脚本。优选地,本实施例的服务器中模拟浏览器的渲染过程,用于进行数据收集和数据区分,即收集各网页,并对各网页进行模拟渲染,在模拟渲染过程中进行流量分析,即对网页的显示状态进行采样,以确定各网页的关键脚本和非关键脚本。当然,在实际应用中,其它具有上述数据收集和数据区分功能的设备或功能模块等也可以用于确定各网页的关键脚本和非关键脚本,如具有上述功能的应用服务器等。此外,需要说明的是,网页的正常显示时间和网页各脚本的加载时间的获取也不限于模拟渲染的方式。并且,关键脚本和非关键脚本的确定也不限于上述比较加载时间的方式,如在其他实施例中,分析全网中页面对应的Dom结构和源代码,对不同页面结构中的各脚本进行分析,通过服务器端预存的模型结构对每个页面对应的各脚本进行打分,判定所述各脚本是否为特定的脚本。如果某脚本对应的分值较高,大于判定阈值,则表明其为渲染页面必需的元素,一旦该脚本被过滤,则页面暂不能显示完整的页面结构,则将该脚本作为特定的脚本,即本实施例中的关键脚本;反之,某脚本对应的分值较低,则表明其不为渲染页面必需的元素,该脚本被过滤也暂不影响页面结构的展现,则将该脚本为特定的脚本外的其他脚本,即本实施例中的非关键脚本。在其他实施例中,采用模型结构和比较加载时间结合来进行判断。比较网页的正常显示时间和网页各脚本的加载时间得到特定的脚本,并根据模型结构对各特定的脚本进行打分,统计特定的脚本中各脚本的优先级,从而按优先级决定各特定的脚本的加载顺序,保证特定的脚本中带有重要的表意信息的特定的脚本先加载,其余特定的脚本后加载,カロ快了页面中信息的显示效率,保证了用户快速看到页面中的诸如文字等表意信息。
优选地,在确定了网页的特定的脚本之后,可以将特定的脚本的信息和除特定的脚本外其他脚本(即非特定的脚本)的信息存储到脚本列表中。优选地,特定的脚本的信息为特定的脚本对应的加载时间。本实施例中,关键脚本的信息可以为关键脚本的加载时间,非关键脚本的信息为非关键脚本的加载时间。在服务器中设置各页面对应的脚本列表,需要时直接从脚本列表中提取相应信息确定预加载网页资源向客户端发送,也即,服务器端根据脚本列表中存储的网页的关键脚本的信息和获得的捜索结果信息,确定向客户端发送对应于捜索结果信息的网页的关键脚本,井向客户端发送确定的网页的关键脚本供客户端预加载,有效提高了预加载资源确定速度和预加载效率。当脚本列表中存储有关键脚本的加载时间和非关键脚本的加载时间吋,则可以根据脚本列表中记录的各脚本的加载时间确定关键脚本并将所述关键脚本加载到浏览器的缓存中。此时,客户端根据脚本列表中目标页面的特定的脚本的信息和除特定的脚本外其他脚本的信息,确定客户端待调用的目标页面对应的特定的脚本,并向预加载对应的特定的脚本至缓存中供客户端调用。具体到本实施例,客户端根据脚本列表中关键脚本的信息和非关键脚本的信息,确定客户端待调用的目标页面对应的关键脚本,并预加载对应的关键脚本至缓存中供被触发链接进行调用。步骤S204:服务器根据获取的捜索结果中的目标页面,对用户的网页点击行为进行预测,从目标页面中预测用户欲点击的各优选链接。对用户网页点击行为的预测可以由本领域技术人员根据实际情况采用适当方式进行,如通过对用户历史浏览行为进行分析获得等。通过对用户的网页点击行为进行预测,确定用户可能会点击的各优选链接,将这些优选链接对应的网页进行脚本的预加载,在用户进行点击触发前,即向用户所在的客户端发送目标页面对应的各关键脚本。本实施例中,设定对用户的网页点击行为的预测结果为用户可能会点击搜索结果的前五个条目中的某个或某些对应的优选链接。当然,也可以不进行预测,确定所有捜索结果信息对应的网页均为优选链接。需要说明的是,对用户的网页点击行为进行预测也可以在客户端进行,由客户端的浏览器进行分析预测后,将预测的目标页面中用户欲点击的各优选链接发送给服务器。步骤S206 :服务器向用户所在的客户端发送所述预测的各优选链接的关键脚本供客户端预加载。当用户触发某网页链接时,向服务器发送网页点击指示,指示该网页链接被点击。而本实施例中,在用户在搜索引擎提交搜索请求的过程中,搜索引擎获得各捜索结果后,即可向客户端发送所预测的各优选链接对应的关键脚本,实现关键脚本的预加载。当然,在其他实施例中,也可以在搜索结果显示完毕后,向客户端发送所预测的各优选链接对应的特定的脚本,实现特定的脚本的预加载,本申请不作限定。对某网页进行预加载时,可以根据脚本列表中该网页的关键脚本的信息对关键脚本预加载,也可以根据脚本的加载时间确定将哪些脚本作为网页的关键脚本进行预加载。对关键脚本进行预加载时,可以加载至客户端浏览器的缓存中。
步骤S208 :服务器接收到预测的各优选链接中被触发链接的触发信号,确定客户端已加载所述被触发链接对应网页的关键脚本后,向客户端发送该网页对应的非关键脚本。用户点击捜索结果中的链接时,会向服务器发送该被触发链接的触发信号,以告知服务器用户的点击行为。此时,在用户侧,客户端先从缓存中读取已预加载网页的各关键脚本,使用户可以正常浏览网页内容;待关键脚本中对应的页面元素显示完毕后,再将被触发链接对应网页的除特定的脚本外其他脚本(即非关键脚本)进行加载。通过本实施例,对被触发链接对应网页的各脚本进行有效筛选,仅被触发链接对应网页的关键脚本,通过对搜索结果中被触发链接对应网页的各脚本进行筛选,減少了页面被触发时网络下载量,平衡了下载带宽,提高了客户端的预加载效率,使得页面对应的各脚本被最大化利用,从整体上提升页面加载的效率。并且,因为已对网页资源,即脚本进行了关键脚本和非关键脚本的区分,客户端不需再对各搜索结果对应网页进行解析和判断,以划分关键脚本和非关键脚本,从而直接获取网页页面展现所需要的基本资源,減少了页面解析和处理,降低了客户端消耗,使得整个页面触发、显示的过程更加高效。实施例四參照图5,示出了根据本申请实施例四的一种网页预加载方法的步骤流程图。本实施例以用户通过搜索引擎进行查询,根据得到的捜索结果进行网页预加载为例,对本申请的网页预加载方法进行说明,本实施例中,搜索结果中页面对应的各脚本同时开始加载。步骤S302 :用户通过客户端浏览器的搜索引擎输入查询串,获得搜索結果。步骤S304 :服务器记录全网中各搜索结果中页面对应各脚本的加载速度,并对各脚本的加载速度进行分析。再次參照图4,表示页面和页面对应的各脚本的加载时间,服务器对各页面进行模拟渲染时,在每个脚本加载完毕时对相应页面的渲染效果进行采样,将保证页面正常渲染的脚本作为特定的脚本。步骤S306 :在服务器端对各脚本进行过滤,确定使页面正常显示的脚本为特定的脚本。根据各脚本的加载速度可推算出各脚本的加载时间,如页面的正常显示时间为ls,Is页面基本显示完毕后,各脚本中加载时间大于Is的脚本B,说明该脚本资源即使不下载,也不影响页面的正常渲染,不为特定的脚本;反之小于Is的脚本A、脚本C,为特定的脚本。对各网页中的特定的脚本进行预加载,加载至浏览器的缓存中。步骤S308 :客户端在搜索引擎提交搜索请求后,调用搜索结果中目标页面对应的关键脚本预加载至缓存中。步骤S310 :用户点击相应搜索结果中的被触发链接,加载相应的页面。用户触发捜索结果中对应的被触发链接时,会首先判断主页面是否存在于缓存中,如果存在缓存中,就直接使用缓存数据,然后运行html代码并开始页面渲染。对于特定的脚本A、C而言,由于对应数据已经进行缓存,所以整个数据获取时间很短,基本上认为接近为O。而由于A、C为特定的脚本,所以整个被触发页面到此时已能够显示基本的内容,不影响用户的阅读。对于脚本B而言,可以在页面到此时已能够显示基本的内容再进行下载,此时用户已经阅读已展现被触发页面的页面内容,不管其是否能够成功下载或者下载时间 长短,已经不影响整个页面渲染和显示,从而加快了页面的显示速度。本实施例中,当某捜索结果对应的链接被触发时,浏览器无须再对脚本进行解析和执行,直接请求服务器。服务器已经判断该页面有3个脚本,其中A、C为特定的脚本,B为除特定的脚本外的其他脚本,则允许浏览器正常加载A、C脚本至浏览器的缓存中。后续待用户点击该页面的链接时,先使用页面中的已缓存的数据进行页面基本渲染,确保用户正常浏览网页内容。在此之后,再通知浏览器,进行B脚本的下载。通过本实施例,服务器记录全网中各页面对应脚本的加载时间并进行分析,确定特定的脚本;在捜索结果中的某链接被触发时,服务器根据链接对应页面的各脚本的加载时间对各脚本进行过滤,即对特定的脚本进行区分,将事先已预加载至缓存中的各特定的脚本进行加载,并在该被触发链接对应页面中的特定的脚本渲染完毕后,再通知浏览器将被触发页面中过滤掉的脚本进行加载。通过本实施例,减少非必要的数据的网络下载量,カロ快了用户在目标页面中点击被触发链接时的页面渲染速度,降低了预加载资源成本,而且缓存中特定的脚本保证了页面能够正常展现,在用户查看被触发页面内容时再展现加载时间过长的脚本,保证了页面的显示效果,从而使本方案在页面的显示效果和预加载资源成本之间达到平衡,高效地加载了被触发链接对应页面的页面内容。实施例五參照图6,示出了根据本申请实施例五的一种网页加载系统的结构框图。本实施例的网页加载系统包括服务器端502和客户端504。其中,服务器端502包括获取模块5022,用于获取网页的正常显示时间和网页中各脚本的加载时间;确定模块5024,用于对网页的正常显示时间和网页中各脚本的加载时间进行分析,从网页对应的各脚本中确定特定的脚本。客户端504包括预加载模块5042,用于调用目标页面对应的特定的脚本预加载至缓存中;渲染模块5044,用于根据缓存中特定的脚本对目标页面中的被触发链接进行渲染,使被触发链接对应的页面内容正常显示。优选地,确定模块5024,用于将加载时间小于或等于网页的正常显示时间的脚本确定为网页的特定的脚本。
优选地,获取模块5022,用于通过对网页进行模拟渲染,在每个脚本加载完毕时对相应页面的渲染效果进行采样,获取网页的正常显示时间和网页中各脚本的加载时间。优选地,客户端504还包括加载模块5046,用于渲染模块5044根据缓存中特定的脚本对目标页面中的被触发链接进行渲染,使被触发链接对应的页面内容正常显示之后,调用被触发链接对应的页面中除特定的脚本外其他脚本进行加载。优选地,服务器端502还包括存储模块5026,用于将特定的脚本的信息和除特定的脚本外其他脚本的信息存储到脚本列表中;客户端504的预加载模块5042用于根据脚本列表中目标页面的特定的脚本的信息和除特定的脚本外其他脚本的信息,确定客户端待调用的目标页面对应的特定的脚本,井向服务器发送请求,预加载对应的特定的脚本至缓存中供目标页面调用。 优选地,特定的脚本的信息为所述特定的脚本对应的加载时间。优选地,客户端504的预加载模块5042,用于在搜索引擎提交搜索请求后,调用搜索结果中目标页面对应的特定的脚本预加载至缓存中。本实施例的网页预加载系统用于实现前述多个方法实施例中相应的网页预加载方法,并具有相应的方法实施例的有益效果,在此不再赘述。本申请提供了一种网页预加载方案,通过该方案能够实现真正的网页预加载,使得已预加载的页面达到秒开的效果;而且,使得客户端的各种消耗最小,充分减小了预加载的副作用。与传统预加载方案相比(I)传统预加载没有对动态资源和静态资源进行区分,导致ー些影响页面渲染的关键资源需要在用户点击时才进行下载,使得最后的用户依然需要等待页面资源的下载和渲染;(2)传统预加载为了对动态资源和静态资源进行区分,需要在客户端对网页进行解析和预执行,大量消耗客户端资源,导致预加载副作用掩盖预加载效果;(3)传统预加载得到页面加载的资源列表,但是无法区分关键资源和非关键资源,导致每个页面需要大量的网络连接和数据下载。阻塞正常的用户网络浏览和预加载数据下载,也在一定程度上掩盖预加载效果。而本申请的预加载方案,只对目标页面对应的关键资源进行预加载,且在触发链接吋,仅加载被触发链接对应的非关键资源,減少了非必要资源的传输,完美解决了上述问题,使得预加载能够资源最优化使用,真正达到秒开效果。需要说明的是,本申请的多个实施例中以网页的特定的脚本为关键脚本为例,对本申请的网页预加载方案进行说明,但本领域技术人员应当明了,网页的特定的脚本不限于本申请中的关键脚本,网页的特定的脚本根据具体应用情景的不同可以是其它适当的网页脚本,本申请对此不作限制。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相參见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处參见方法实施例的部分说明即可。以上对本申请所提供的一种网页预加载方法和系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
权利要求
1.一种网页预加载方法,其特征在于,包括 获取网页的正常显示时间和所述网页中各脚本的加载时间; 对所述网页的正常显示时间和所述网页中各脚本的加载时间进行分析,从所述网页对应的各脚本中确定特定的脚本; 调用目标页面对应的特定的脚本预加载至缓存中; 根据所述缓存中特定的脚本对所述目标页面中的被触发链接进行渲染,使所述被触发链接对应的页面内容正常显示。
2.根据权利要求I所述的方法,其特征在于,在所述根据所述缓存中特定的脚本对所述目标页面中的被触发链接进行渲染后,还包括 调用所述被触发链接对应的页面中除所述特定的脚本外其他脚本进行加载。
3.根据权利要求I所述的方法,其特征在于,所述对所述网页的正常显示时间和所述网页中各脚本的加载时间进行分析时 将加载时间小于或等于所述网页的正常显示时间的脚本确定为所述网页的特定的脚本。
4.根据权利要求3所述的方法,其特征在于,所述获取网页的正常显示时间和所述网页中各脚本的加载时间的步骤包括 通过对所述网页进行模拟渲染,对相应页面的渲染效果进行采样,获取所述网页的正常显示时间和所述网页中各脚本的加载时间。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括将所述特定的脚本的信息和所述除特定的脚本外其他脚本的信息存储到脚本列表中; 所述调用目标页面对应的特定的脚本预加载至缓存中的步骤包括根据所述脚本列表中目标页面的特定的脚本的信息和所述除特定的脚本外其他脚本的信息,确定客户端待调用的目标页面对应的特定的脚本,并向服务器发送请求,预加载所述对应的特定的脚本至缓存中供目标页面调用。
6.根据权利要求5所述的方法,其特征在于,所述特定的脚本的信息为所述特定的脚本对应的加载时间。
7.根据权利要求I所述的方法,其特征在于,所述调用目标页面对应的特定的脚本预加载至缓存中的步骤包括在提交搜索请求至搜索引擎后,调用搜索结果中目标页面对应的特定的脚本预加载至缓存中。
8.—种网页预加载系统,其特征在于,包括 获取模块,用于获取网页的正常显示时间和所述网页中各脚本的加载时间; 确定模块,用于对所述网页的正常显示时间和所述网页中各脚本的加载时间进行分析,从所述网页对应的各脚本中确定特定的脚本; 预加载模块,用于调用目标页面对应的特定的脚本预加载至缓存中; 渲染模块,用于根据所述缓存中特定的脚本对所述目标页面中的被触发链接进行渲染,使所述被触发链接对应的页面内容正常显示。
9.根据权利要求8所述的系统,其特征在于,所述确定模块,用于将加载时间小于或等于所述网页的正常显示时间的脚本确定为所述网页的特定的脚本。
10.根据权利要求9所述的系统,其特征在于,所述获取模块,用于通过对所述网页进行模拟渲染,在每个脚本加载完 毕时对相应页面的渲染效果进行采样,获取所述网页的正常显示时间和所述网页中各脚本的加载时间。
全文摘要
本申请提供了一种网页预加载方法与系统,涉及网络技术领域。方法包括获取网页的正常显示时间和所述网页中各脚本的加载时间;对所述网页的正常显示时间和所述网页中各脚本的加载时间进行分析,从所述网页对应的各脚本中确定特定的脚本;调用目标页面对应的特定的脚本预加载至缓存中;根据所述缓存中特定的脚本对所述目标页面中的被触发链接进行渲染,使所述被触发链接对应的页面内容正常显示。本申请缓存中特定的脚本保证了页面正常展现,因此减少了非必要的数据的网络下载量,加快了目标页面中被触发链接时的页面渲染速度,降低了预加载资源成本,从而使页面的显示效果和预加载资源成本之间达到平衡,高效地显示被触发链接的页面内容。
文档编号G06F17/30GK102855318SQ201210320888
公开日2013年1月2日 申请日期2012年8月31日 优先权日2012年8月31日
发明者涂强, 余浩, 孙宁 申请人:北京搜狗信息服务有限公司, 北京搜狗科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1