静态资源更新方法以及静态资源管理系统与流程

文档序号:13704473阅读:305来源:国知局

本发明涉及互联网领域,具体涉及静态资源更新方法以及静态资源管理系统。



背景技术:

网络用户访问静态资源的过程中,可能需要经过多个服务器,每个服务器中都可能会存在缓存,所述缓存包括但不限于浏览器缓存、代理缓存、cdn(contentdeliverynetwork,即内容分发网络)缓存和运营商缓存。缓存通过将访问过的web资源内容在cache存储区中存放一个副本,使得在该资源内容下次被访问时,不必连接到源网站进行请求,而是由cache中的副本来提供被访问的资源内容。因访问cache存储区比访问源网站速度普遍要快,所以可显著提高web资源访问的性能及降低网络流量。

然而,缓存会造成静态资源更新的失效以及引用静态资源的代码与静态资源内容不一致等问题,最终可能导致浏览器不能正常工作或静态资源不能正确展现。以浏览器缓存为例,虽然可以通过使用http的响应头中的cache-control的字段指定缓存过期条件,待过期后重新加载网页,但是这种重新加载的条件与静态资源的内容无关,若静态资源更新了但缓存过期条件未达到,浏览器并不会重新加载更新后的资源,而仍然显示缓存中的过期的静态资源,从而导致静态资源更新的失效,进而导致静态资源不能正确的展现,甚至浏览器不能正常工作。



技术实现要素:

为了解决上述技术问题,本发明提出了静态资源更新方法以及静态资源管理系统,通过使用与静态资源内容一一对应的静态资源标识加载静态资源,并在网页中引用所述静态资源标识,从而使得网页中的内容与静态资源内容保持一致,而用户根据网页访问静态资源,因此,对静态资源的访问也能够与静态资源内容保持一致:在静态资源未更新时,能够使用缓存中的静态资源以加快网页响应速度,在静态资源更新后,能够避免使用缓存中的过期的静态资源,实现正确的网络响应。

本发明是以如下技术方案实现的,一种静态资源更新方法,所述静态资源通过静态资源标识进行加载,所述静态资源标识与所述静态资源的内容一一对应,包括:

根据更新后的静态资源生成更新后的静态资源标识,

将网页中引用的所述静态资源的更新前的静态资源标识替换为更新后的静态资源标识,

将更新后的静态资源和包含更新后的静态资源标识的网页上传到服务器。

优选的,所述根据更新后的静态资源生成更新后的静态资源标识包括:

根据更新后的静态资源的内容生成文件摘要,

根据所述文件摘要和所述静态资源的初始文件名生成更新后的静态资源标识。

优选的,网页通过占位符引用静态资源标识,根据所述占位符将网页中引用的所述静态资源的更新前的静态资源标识替换为更新后的静态资源标识。

优选的,所述占位符与所述静态资源的类型一一对应。

优选的,所述服务器包括资源服务器和网页服务器,还包括:

将所述更新后的静态资源上传至资源服务器,

在所述更新后的静态资源上传至资源服务器后,将包含更新后的静态资源标识的网页上传至网页服务器。

优选的,所述服务器的缓存中存储有更新前的静态资源,所述更新前的静态资源的部署方法包括:

根据更新前的静态资源的内容生成更新前的文件摘要;

根据所述更新前的文件摘要和所述更新前的静态资源的初始文件名生成更新前的静态资源标识;

将所述更新前的静态资源和包含所述更新前的静态资源标识的网页部署到服务器。

一种静态资源管理系统,包括:

静态资源标识生成模块,用于生成静态资源标识,所述静态资源标识用于加载静态资源,所述静态资源标识与所述静态资源的内容一一对应,

网页内容管理模块,用于管理网页内容,所述网页引用所述静态资源标识,

推送模块,用于将所述静态资源和包含所述静态资源标识的网页推送到服务器。

优选的,所述静态资源标识生成模块包括:

文件摘要生成子模块,用于根据静态资源的内容生成文件摘要,

静态资源标识构建子模块,用于根据所述文件摘要和所述静态资源的初始文件名生成静态资源标识。

优选的,所述网页内容管理模块包括:

静态资源引用子模块,用于在网页中通过占位符引用静态资源标识,

静态资源标识查找子模块,用于在网页中根据所述占位符查找静态资源标识,

静态资源标识替换子模块,用于在网页中对静态资源标识进行替换。

优选的,所述占位符与静态资源的类型一一对应。

优选的,所述服务器包括用于存储静态资源的资源服务器和用于存储网页的网页服务器,所述服务器构成内容分发网络,

所述推送模块将所述静态资源推送到所述资源服务器,并将包含所述静态资源标识的网页推送到网页服务器。

本发明的有益效果是:

本发明提出了静态资源更新方法以及静态资源管理系统,通过使用与静态资源内容一一对应的静态资源标识加载静态资源,并在网页中引用所述静态资源标识,从而使得网页中的内容与静态资源内容保持一致。本发明具有以下优势:

(1)用户根据网页访问静态资源,因此,对静态资源的访问也能够与静态资源内容保持一致:在静态资源未更新时,能够使用缓存中的静态资源以加快网页响应速度,避免不必要的流量消耗,在静态资源更新后,能够避免使用缓存中的过期的静态资源,实现正确的网络响应;

(2)使用占位符对静态资源标识进行引用,通过搜索占位符即可获取静态资源标识,从而加快对静态资源标识编辑和替换的速度,也可以通过占位符实现静态资源标识的自动替换,从而实现静态资源的自动部署和自动更新;

(3)保证网页与静态资源内容的一致,避免出现浏览器不能正常工作或静态资源不能正确展现的情况。

(4)在海量请求中,节省大量的带宽成本,同时使处于异型网络结构的用户以最快的速度访问页面。

附图说明

图1是实施例1中提供的一种静态资源部署方法流程图;

图2是实施例2中提供的一种静态资源更新方法流程图;

图3是实施例3中提供的一种基于缓存机制的静态资源加载方法流程图;

图4是实施例4中提供的一种静态资源管理系统的示意图。

具体实施方法

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1:

一种静态资源部署方法,所述静态资源通过静态资源标识进行加载,所述静态资源标识与所述静态资源的内容一一对应,包括:

s101.根据所述静态资源的内容生成文件摘要。

s102.根据所述文件摘要和所述静态资源的初始文件名生成静态资源标识。

s103.将所述静态资源和包含所述静态资源标识的网页部署到服务器。

具体地,静态资源指静态的文件,如web中的图片,样式文件(*.css),音频文件、视频文件和js文件等,相应的,所述静态资源的内容即所述静态的文件中所记录的具体内容,以web中的图片为例,所述静态资源的内容为所述图片中所展示的内容,以样式文件为例,所述静态资源的内容为所述样式文件中记录的具体内容。所述静态资源标识为静态资源的文件名,静态资源的初始文件名与静态资源具体内容无关,可以根据实际情况由网站研发人员或网站管理员进行设定。

以加载在网页标题位置初始文件名为head.jpg的图片为例,根据所述图片的内容使用md5算法生成head.jpg文件的文件摘要,并且把文件摘要加入到文件名中。若文件摘要为ead23leb280,则初始文件名为head.jpg的图片的静态资源标识为head.ead23leb280.jpg,为使得通过静态资源标识可以加载静态资源,将初始文件名为head.jpg的文件的文件名设定为head.ead23leb280.jpg。本实施例中md5算法也可以使用sha、ripemd等摘要生成算法替代,只要是能够根据静态资源的内容生成唯一结果的算法即可。此外,还需说明的是文件摘要与初始文件名的组合规则也可以根据用户的实际需要进行设定,本实施例中组合后的静态资源标识为head.ead23leb280.jpg,当然,也可以设定为ead23leb280.head.jpg、head(ead23leb280).jpg或其他形式。

在网页中需要引用所述图片的位置,引用“head.ead23leb280.jpg”这个静态资源标识,则网页包含了所述图片的静态资源标识。

将名称为head.ead23leb280.jpg的图片和引用head.ead23leb280.jpg的网页部署到服务器即完成了对于所述图片的部署。

具体地,上述所有的步骤环节可以使用程序自动化的实现,也可以为通过手动或手动与程序自动化结合的方式实现。

本实施例中提供了一种静态资源部署方法,静态资源标识和静态资源的内容呈一一对应关系,这种部署方法使得静态资源标识和静态资源的内容具有唯一确定的联系,由于内容无变化的静态资源的静态资源标识也无变化,所以无变化的静态资源在浏览器中加载的时候能够仍会使用缓存的版本,而对于变化的静态资源,其静态资源标识也变化了,变化后的静态资源标识在缓存中没有对应的资源,因此需要重新从服务器加载,这种方法不仅充分利用缓存最大限度地减少额外的流量消耗,还避免了只使用缓存而引发的加载混乱,提高了静态资源部署结果的稳定性。

实施例2:

一种静态资源更新方法,所述静态资源通过静态资源标识进行加载,所述静态资源标识与所述静态资源的内容一一对应,包括:

s201.根据更新后的静态资源的内容生成文件摘要。

s202.根据所述文件摘要和所述静态资源的初始文件名生成更新后的静态资源标识。

本实施例中静态资源标识即为静态资源的文件名,以加载在网页标题位置文件名为head.ead23leb280.jpg的图片为例,可知所述图片的初始文件名为head.jpg。根据更新后的图片的内容使用md5算法生成文件摘要,并且把文件摘要加入到文件名中。若文件摘要为es1,则将更新后的图片的静态资源标识修改为head.es1.jpg,为使得通过静态资源标识可以加载静态资源,将更新后的文件的文件名设定为head.es1.jpg。

s203.将网页中引用的所述静态资源的更新前的静态资源标识替换为更新后的静态资源标识。

具体地,网页中通过占位符引用静态资源标识,若网页中对于图片使用占位符“<%”和“%>”进行引用,则通过查询占位符“<%”和“%>”查询被引用的静态资源标识,并将更新前的静态资源标识替换为更新后的静态资源标识。

具体的,为了提升替换的效率,增大通过占位符查找到需要被替换的静态资源标识的命中率,可以设置占位符与所述静态资源的类型一一对应。比如,使用占位符“<%”和“%>”引用图片的静态资源标识,使用占位符“<%%”和“%%>”引用视频的静态资源标识,使用“(%”和“%)”引用文档的静态资源标识。

本步骤中通过设置并使用占位符为替换静态资源标识提供便利,在使用占位符的基础上可以实现静态资源标识的自动替换,当然,也可以根据实际的需要进行手动替换或使用其它形式的编译、计算等达到替换的目的。

s204.将更新后的静态资源和包含更新后的静态资源标识的网页上传到服务器。

具体地,所述服务器包括资源服务器和网页服务器,还包括:

将所述更新后的静态资源上传至资源服务器,

在所述更新后的静态资源上传至资源服务器后,将包含更新后的静态资源标识的网页上传至网页服务器。这种上传顺序可以优化网络请求。

具体地,所述服务器的缓存中存储有更新前的静态资源,所述更新前的静态资源的部署方法包括:

根据更新前的静态资源的内容生成更新前的文件摘要;

根据所述更新前的文件摘要和所述更新前的静态资源的初始文件名生成更新前的静态资源标识;

将所述更新前的静态资源和包含所述更新前的静态资源标识的网页部署到服务器。

具体的静态资源的部署方法可参见实施例1。

在现有技术中,存在缓存机制的网络中,静态资源标识不能够随着静态资源内容的改变而改变,从而容易引起新旧资源在加载时的混乱。本实施例提供了一种静态资源更新方法,通过使用与静态资源内容一一对应的静态资源标识加载静态资源,避免了现有技术中使用缓存会出现的静态资源更新的失效以及引用静态资源的代码与静态资源内容不一致等问题,此外,通过使用自定义的占位符能够实现静态资源标识的自动替换,从而避免现有技术中手动修改的繁琐和出错率高的问题。

实施例3:

在存在缓存机制的网络中,当静态资源与引用静态资源的页面同时有内容变化,并且静态资源与引用静态资源的页面部署在不同的服务器上的情况下,只有静态资源与引用静态资源的页面同时都在浏览器上面同步显示时才是正常时,由于某些异常的情况(网络时延,部署页面与静态资源到服务器有时间差等)会出现静态资源与引用静态资源的页面没有同步在浏览器上显示最新版本的问题(如引用静态资源的页面是最新的,但是静态资源还是缓存的旧版本)。这种问题的出现很有可能影响页面的展示,也有可能影响到后续页面或静态资源的再次更新。

为避免出现上述问题,本实施例在使用实施例1提供的一种静态资源部署方法和实施例2提供的一种静态资源更新方法的基础上,提供了一种基于缓存机制的静态资源加载方法。

一种基于缓存机制的静态资源加载方法,所述静态资源通过静态资源标识进行加载,所述静态资源标识与所述静态资源的内容一一对应,如图3所示,包括:

s301.获取网页中的静态资源标识,根据所述静态资源标识查找缓存中的静态资源:

s302.若缓存中存在所述静态资源,直接加载所述静态资源;

s303.若缓存中不存在所述静态资源,向服务器请求所述静态资源,并根据所述服务器的响应加载所述静态资源。

s304.向所述服务器请求所述静态资源后,将所述静态资源存储在缓存中。

对于内容无变化的静态资源,网页中对应的静态资源标识也不变,若缓存中存在所述静态资源则可以直接进行加载,不会有额外的流量消耗;若静态资源被更新,则网页中对应的静态资源标识被相应改变,缓存中存储的过时资源的静态资源标识与网页中的静态资源标识并不一致,因此无法从缓存中获取更新后的静态资源,则自动访问所述更新后的静态资源所在的服务器。本实施例中的加载方法能够为web页面提供准确的展示和功能,同时最大化程度节省网络流量带宽,优化用户访问资源的速度,同时又避免了使用缓存会出现的静态资源更新的失效、显示异常以及引用静态资源的代码与静态资源内容不一致等问题。

实施例4:

本实施例提供了一种静态资源管理系统,如图4所示,包括:

静态资源标识生成模块401,用于生成静态资源标识,所述静态资源标识用于加载静态资源,所述静态资源标识与所述静态资源的内容一一对应。

具体地,所述静态资源标识生成模块401包括:

文件摘要生成子模块4011,用于根据静态资源的内容生成文件摘要,

静态资源标识构建子模块4012,用于根据所述文件摘要和所述静态资源的初始文件名生成静态资源标识。

网页内容管理模块402,用于管理网页内容,所述网页引用所述静态资源标识。

具体地,所述网页内容管理模块402包括:

静态资源引用子模块4021,用于在网页中通过占位符引用静态资源标识,所述占位符与静态资源的类型一一对应,

静态资源标识查找子模块4022,用于在网页中根据所述占位符查找静态资源标识,

静态资源标识替换子模块4023,用于在网页中对静态资源标识进行替换。

推送模块403,用于将所述静态资源和包含所述静态资源标识的网页推送到服务器。

具体地,所述服务器包括用于存储静态资源的资源服务器和用于存储网页的网页服务器,所述推送模块将所述静态资源推送到所述资源服务器,并将包含所述静态资源标识的网页推送到网页服务器。

所述服务器构成内容分发网络,即cdn(contentdeliverynetwork)。通过在网络各处放置节点服务器构成网络,根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。用户可就近取得所需内容,解决internet网络拥挤的状况,提高用户访问网站的响应速度。

本发明中的技术方案中的各个模块均可通过计算机终端或其它设备实现。所述计算机终端包括处理器和存储器。所述存储器用于存储本发明中的程序指令/模块,所述处理器通过运行存储在存储器内的程序指令/模块,实现本发明相应功能。

本发明中的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

本发明中所述模块/单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。可以根据实际的需要选择其中的部分或者全部模块/单元来达到实现本发明方案的目的。

另外,在本发明各个实施例中的各模块/单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1