一种控制浏览器缓存的方法、装置和系统的制作方法

文档序号:6586687阅读:130来源:国知局
专利名称:一种控制浏览器缓存的方法、装置和系统的制作方法
技术领域
本申请涉及网络技术领域,特别是涉及一种控制浏览器缓存的方法、装置和系统。
背景技术
浏览器是一个显示网页服务器或档案系统文件,并能够让用户与上述文件进行互 动的一种软件,该浏览器用来显示在万维网内或局部局域网内的文字、影像及其他资讯等 信息,而上述的文字、影像及其他资讯等信息可以是连接其他网址的超链接,从而使得用户 可以迅速及轻易地浏览各种资讯。其中,网页一般是HTML(Hyper Text Mark-up Language, 超文本标记语言)的格式,用户终端上常见的浏览器包括hternet Explorer、Firefox等 浏览器,可以看出,浏览器是常用的客户端程序。主流浏览器都有本地缓存机制,当通过本地缓存来访问已经访问过的静态文件 时,可以加快浏览速度,并提高用户使用感受。具体的,本地缓存机制是浏览器为了加速浏览,在用户磁盘上对最近请求过的文 档进行存储,而当访问者再次请求这个页面时,浏览器就可以从本地磁盘中显示相应的文 档,从而加速页面的阅览。此外,静态文件是指需要下载到浏览器里的文件,例如,HTML文件、 javascript (Java描述语言)文件、ess (Cascading Style Sheets,层叠样式表)文件和图 片文件等。但是,不同厂商的浏览器的本地缓存机制并不相同,浏览器不能保证当服务器端 的静态文件发生变化时,能够及时的更新本地缓存中的静态文件,从而导致系统功能不能 正常使用。而且浏览器的版本经常需要更新换代,不同版本的浏览器的本地缓存机制也可 能不同。因此,为了保证系统功能正常使用,需要保证用户不管在哪种浏览器下都能访问 到最新版本的静态文件,并使用最新版本的静态文件替换浏览器缓存中的过期文件。其中, 过期文件是指当本地缓存中保存的副本与最新文件不一致时的文件。现有技术中,保证用户能够访问最新版本的静态文件的方式包括1)依赖浏览器自身的更新缓存机制。浏览器自身具备更新缓存机制,当服务器端的静态文件发生变化时,浏览器将根 据一定的机制更新自身缓存中的静态文件。2)在服务器端对浏览器的响应中加上不缓存的指令,从而阻止浏览器缓存访问过 的静态文件。通过在服务器端对浏览器的响应中加上不缓存的指令,使得浏览器不缓存与响应 有关的所有静态文件,此时,在浏览器端,每次请求都需要重新到服务器端下载最新的静态 文件,从而阻止浏览器缓存访问过的静态文件。3)当静态文件有更新时,服务器端通过对静态文件改名或更改静态文件的引用地 址的方式,强制浏览器访问最新的静态文件。
当静态文件被改名或引用地址被更改为没有访问过的地址后,浏览器将认为该静 态文件是没有访问过的新静态文件,并会重新下载并缓存该静态文件,以此来达到强制浏 览器更新缓存的目的。在实现本申请的过程中,发明人发现现有技术至少存在如下问题当通过使用依赖浏览器自身的更新缓存机制来保证用户能够访问最新版本的静 态文件时,不同浏览器的缓存机制,或者同一浏览器不同版本的缓存机制,都会有所差别,并 不能保证当服务器端的静态文件有更新时,浏览器会自动下载最新的静态文件。而且,浏览 器的缓存机制能通过软件设置的方式进行更改,从而导致对客户端的缓存不可控。当通过使用在服务器端对浏览器的响应中加上不缓存的指令来保证用户能够访 问最新版本的静态文件时,虽然能够阻止浏览器缓存访问过的静态文件,但是每次请求都需要下载服务器端 的最新静态文件,从而会导致不必要的静态文件下载,增加服务器端的压力,使得服务器端 响应效率降低。3)当通过使用静态文件有更新时服务器端通过对静态文件改名或更改静态文件 的引用地址的方式,强制浏览器访问最新的静态文件来保证用户能够访问最新版本的静态 文件时,对于大型的互联网产品,将包含很多静态文件,每次更新时都更改静态文件名或更 改静态文件的引用地址,将会增加维护成本,并增加无法引用到这些静态文件的风险。

发明内容
本申请提供一种控制浏览器缓存的方法、装置和系统,以保证浏览器客户端能够 访问最新的静态文件,防止浏览器客户端访问浏览器缓存中的过期文件,并且高效简单地 维护大量的静态文件。本申请提出一种控制浏览器缓存的方法,包括以下步骤服务器获取生成网页的静态文件,并判断所述静态文件是否发生变化;当判断结果为所述静态文件发生变化时,所述服务器生成所述静态文件对应的版 本标识;所述服务器将所述版本标识发送给浏览器,由所述浏览器根据所述版本标识更新 本地缓存。所述服务器生成所述静态文件对应的版本标识之前,还包括所述服务器为每个静态文件配置对应的配置文件;所述配置文件中建立了所述静 态文件对应的版本标识与所述静态文件地址的对应关系。所述静态文件对应的版本标识包括所述静态文件对应的时间版本标识;所述服务 器生成所述静态文件对应的版本标识包括所述服务器获取当前时间,并将所述当前时间作为所述静态文件对应的时间版本 标识。所述服务器将所述版本标识发送给浏览器包括所述服务器将所述静态文件对应的配置文件发送给所述浏览器,所述配置文件中 携带了所述版本标识与所述静态文件地址的对应关系。
所述浏览器根据所述版本标识更新本地缓存包括在所述浏览器根据所述静态文件的地址访问所述静态文件时,所述浏览器判断所 述版本标识是否高于本地缓存中的版本标识;当判断结果为所述版本标识高于所述本地缓存中的版本标识时,则所述浏览器根 据所述版本标识与所述静态文件地址的对应关系更新本地缓存。所述浏览器根据所述静态文件的地址访问所述静态文件包括所述浏览器从所述配置文件中获取对应的版本标识;所述浏览器根据所述版本标识,并通过所述版本标识与所述静态文件地址的对应 关系获取所述静态文件的地址;所述浏览器根据所述静态文件的地址访问所述静态文件。本申请提出一种服务器,包括获取模块,用于获取生成网页的静态文件;判断模块,用于判断所述获取模块获取的所述静态文件是否发生变化;生成模块,用于当所述判断模块的判断结果为所述静态文件发生变化时,生成所 述静态文件对应的版本标识;发送模块,用于将所述生成模块生成的所述版本标识发送给浏览器,由所述浏览 器根据所述版本标识更新本地缓存。还包括配置模块,用于为每个静态文件配置对应的配置文件;所述配置文件中建立了所 述静态文件对应的版本标识与所述静态文件地址的对应关系。所述静态文件对应的版本标识包括所述静态文件对应的时间版本标识;所述生成模块包括第一获取子模块,用于获取当前时间;第二获取子模块,用于将所述第一获取子模块获取的所述当前时间作为所述静态 文件对应的时间版本标识。所述发送模块具体用于,将所述静态文件对应的配置文件发送给所述浏览器,所 述配置文件中携带了所述版本标识与所述静态文件地址的对应关系。本申请提出一种客户端,包括接收模块,用于通过自身的浏览器接收来自服务器的版本标识,所述版本标识为 静态文件对应的版本标识;判断模块,用于判断所述接收模块接收的版本标识所对应的静态文件是否发生变 化;处理模块,用于当所述判断模块的判断结果为所述静态文件发生变化时,根据所 述接收模块接收的所述版本标识更新本地缓存。所述接收模块具体用于,通过自身的浏览器接收来自所述服务器的所述静态文件 对应的配置文件,所述配置文件中携带了所述版本标识与所述静态文件地址的对应关系。所述处理模块包括判断子模块,用于在所述浏览器根据所述静态文件的地址访问所述静态文件时, 判断所述版本标识是否高于本地缓存中的版本标识;
更新子模块,用于当所述判断子模块的判断结果为所述版本标识高于所述本地缓 存中的版本标识时,根据所述版本标识与所述静态文件地址的对应关系更新本地缓存。还包括访问模块,用于根据所述静态文件的地址访问所述静态文件;所述访问模块包括第一获取子模块,用于通过所述浏览器从所述配置文件中获取对应的版本标识;第二获取子模块,用于根据所述第一获取子模块获取的所述版本标识,并通过所 述版本标识与所述静态文件地址的对应关系获取所述静态文件的地址;访问子模块,用于根据第二获取子模块获取的所述静态文件的地址访问所述静态 文件。本申请提出一种控制浏览器缓存的系统,包括服务器,用于获取生成网页的静态文件,并判断所述静态文件是否发生变化;当判 断结果为所述静态文件发生变化时,生成所述静态文件对应的版本标识;并将所述版本标 识发送给浏览器;客户端,用于通过自身的浏览器接收所述版本标识,并根据所述版本标识更新本 地缓存。本申请包括以下优点,1)保证客户端浏览器访问服务器端的最新静态文件。通过在服务器端生成静态文件的版本标识,从而决定客户端浏览器是从服务器端 下载最新静态文件还是在本地缓存中提取静态文件。而且当客户端使用不同的浏览器,或 者使用同一浏览器不同版本的缓存机制时,访问的静态文件都会由服务器端决定,即服务 器端统一决定客户端浏览器是否访问最新的静态文件,从而可以杜绝因静态文件过期导致 的程序问题。2)集中管理所有静态文件的版本标识。程序页面通过模板替换的方式从统一的配置文件中提取静态文件的引入地址,并 通过对配置文件的维护从而集中管理所有静态文件的版本标识。当需要更改某一个静态文 件的版本标识时,只需更改该静态文件在配置文件中对应的配置项即可,从而确保该静态 文件在所有程序页面中得以正确引用。3)通过工具自动更改静态文件的版本标识。当静态文件发生更改后,工具能够自动在配置文件中搜索到对应的配置项,并更 改配置文件中对应的版本标识,整个过程无需人工参与,提高了开发和维护效率。


为了更清楚地说明本申请或现有技术中的技术方案,下面将对本申请或现有技术 描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的 一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这 些附图获得其他的附图。图1为本申请实施例一中的一种控制浏览器缓存的方法流程图;图2为本申请实施例应用场景示意图3为本申请实施例二中的一种控制浏览器缓存的方法流程图;图4为本申请实施例三中的一种控制浏览器缓存的方法流程图;图5为本申请实施例架构流程示意图;图6为本申请实施例四中的一种控制浏览器缓存的方法流程图;图7为本申请实施例五中的一种控制浏览器缓存的方法流程图;图8为本申请实施例六中的一种服务器的结构示意图;图9为本申请实施例六中的另一种服务器的结构示意图;图10为本申请实施例六中生成模块的结构示意图;图11为本申请实施例七中的一种客户端的结构示意图;图12为本申请实施例七中处理模块的结构示意图;图13为本申请实施例七中的另一种客户端的结构示意图;图14为本申请实施例七中访问模块的结构示意图。
具体实施例方式本申请的主要思想包括,通过为静态文件配置对应的配置文件,并在配置文件中 建立静态文件的版本标识与引入地址的映射关系,从而使得当静态文件发生变化时,可以 通过更改配置文件版本标识的方式来标识变化后的静态文件,并将变化后的静态文件所对 应的配置文件发送给客户端的浏览器,而浏览器可以根据该变化后的配置文件更新该静态 文件所对应的本地缓存,从而防止用户访问浏览器缓存中的过期文件,并在大型网站中进 行高效维护本申请中,在不禁用浏览器缓存的情况下,当服务器端的静态文件有更新时,任何 浏览器在任何缓存机制下都能够访问到最新的静态文件,从而能高效简单地维护大量的静 态文件,提高用户的使用感受。下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显 然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施 例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属 于本申请保护的范围。如图1所示,为本申请实施例一中的一种控制浏览器缓存的方法流程图,包括以 下步骤步骤101,服务器获取生成网页的静态文件,并判断所述静态文件是否发生变化。 当判断结果为所述静态文件发生变化时,转到步骤102,当判断结果为所述静态文件没有发 生变化时,结束流程。步骤102,所述服务器生成所述静态文件对应的版本标识。具体的,所述服务器生成所述静态文件对应的版本标识之前,即本步骤之前,还包 括所述服务器为每个静态文件配置对应的配置文件;所述配置文件中建立了所述静 态文件对应的版本标识与所述静态文件地址的对应关系。所述静态文件对应的版本标识包括所述静态文件对应的时间版本标识;所述服务器生成所述静态文件对应的版本标识包括
所述服务器获取当前时间,并将所述当前时间作为所述静态文件对应的时间版本 标识。步骤103,所述服务器将所述版本标识发送给浏览器,由所述浏览器根据所述版本 标识更新本地缓存。具体的,所述服务器将所述版本标识发送给浏览器包括所述服务器将所述静态文件对应的配置文件发送给所述浏览器,所述配置文件中 携带了所述版本标识与所述静态文件地址的对应关系。在本申请中,所述浏览器根据所述版本标识更新本地缓存包括在所述浏览器根据所述静态文件的地址访问所述静态文件时,所述浏览器判断所 述版本标识是否高于本地缓存中的版本标识;当判断结果为所述版本标识高于所述本地缓存中的版本标识时,则所述浏览器根 据所述版本标识与所述静态文件地址的对应关系更新本地缓存。此外,所述浏览器根据所述静态文件的地址访问所述静态文件包括所述浏览器从所述配置文件中获取对应的版本标识;所述浏览器根据所述版本标识,并通过所述版本标识与所述静态文件地址的对应 关系获取所述静态文件的地址;所述浏览器根据所述静态文件的地址访问所述静态文件。本申请包括以下优点,1)保证客户端浏览器访问服务器端的最新静态文件。通过在服务器端生成静态文件的版本标识,从而决定客户端浏览器是从服务器端 下载最新静态文件还是在本地缓存中提取静态文件。而且当客户端使用不同的浏览器,或 者使用同一浏览器不同版本的缓存机制时,访问的静态文件都会由服务器端决定,即服务 器端统一决定客户端浏览器是否访问最新的静态文件,从而可以杜绝因静态文件过期导致 的程序问题。2)集中管理所有静态文件的版本标识。程序页面通过模板替换的方式从统一的配置文件中提取静态文件的引入地址,并 通过对配置文件的维护从而集中管理所有静态文件的版本标识。当需要更改某一个静态文 件的版本标识时,只需更改该静态文件在配置文件中对应的配置项即可,从而确保该静态 文件在所有程序页面中得以正确引用。3)通过工具自动更改静态文件的版本标识。当静态文件发生更改后,工具能够自动在配置文件中搜索到对应的配置项,并更 改配置文件中对应的版本标识,整个过程无需人工参与,提高了开发和维护效率。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。本申请上述实施例提供了一种控制浏览器缓存的方法,以下结合具体应用场景对 上述控制浏览器缓存的方法进行具体、详细的描述。如图2所示的一种应用场景示意图,服 务器通过hternet与客户端连接,各个客户端上都包含有浏览器。如图3所示,为基于上述的应用场景,本申请实施例二中的一种控制浏览器缓存 的方法流程图,包括以下步骤步骤301,服务器为静态文件配置对应的配置文件。
具体的,在每个静态文件中,都有一个唯一的版本标识,本申请中,通过为静态文 件配置对应的配置文件,并通过使用该配置文件来携带静态文件的版本标识。在为静态文件配置的配置文件中,将会建立静态文件的版本标识与引入地址的映 射关系,其中,该引入地址为静态文件对应的地址,当客户端需要访问静态文件时,需要根 据该引入地址进行相应的访问过程。需要说明的是,本申请中,并不需要为所有的静态文件都配置对应的配置文件,在 实际应用中,可以根据静态文件的使用情况,选择为静态文件配置对应的配置文件,或者, 选择不为静态文件配置对应的配置文件。例如,有静态文件A和静态文件B,在实际应用中,静态文件的使用情况分别为静 态文件A不会发生变化,静态文件B会发生变化,此时,不需要为静态文件A配置对应的配 置文件,而需要为静态文件B配置对应的配置文件。当然,也可以选择为静态文件A件配置 对应的配置文件,本申请中不再详加赘述。步骤302,服务器判断静态文件是否发生变化。当判断结果为是时,转到步骤303, 否则,结束流程。实际应用中,服务器将根据实际的需要向客户端发送静态文件的信息,从而使得 客户端上的浏览器能够访问对应的静态文件。服务器在向客户端发送静态文件的信息时,该服务器能够根据该静态文件获知是 否变化。例如,对于静态文件A,在之前的过程中向客户端发送了静态文件Al的信息,如果 此时需要向客户端发送静态文件A2的信息,则静态文件发生了变化;如果此时仍然需要向 客户端发送静态文件Al的信息,则静态文件没有发生变化。步骤303,服务器更新静态文件对应的配置文件中的版本标识。由于版本标识与引入地址具有映射关系,即本步骤中可以更新配置文件中引入地 址中的版本标识。优选的,该配置文件中的版本标识可以使用修改时的日期,例如,当修改时的日期 为2009. 9. 28时,服务器可以将静态文件对应的配置文件中的版本标识更新为20090拟8。当然,在实际应用中,并不局限于使用时间版本标识,任意的版本标识方式均在本 申请的保护范围之内。例如,可以直接使用数字版本标识,静态文件初始时的版本标识为0, 第一次需要修改静态文件时,服务器可以将静态文件对应的配置文件中的版本标识更新为 1,第二次需要修改静态文件时,服务器可以将静态文件对应的配置文件中的版本标识更新 为2,以此类推。对于其他的版本标识方式,本申请中不再赘述。步骤304,服务器根据更新后的版本标识并通过模板替换方式引入配置文件,生成 程序页面。其中,该程序页面用于携带新的配置文件并发送给客户端的浏览器。具体的,对于每个静态文件,都有自身对应的模板,而在各个模板中,发生变化的 是配置文件中的版本标识,本申请中,通过模板替换的方式将版本标识引入到配置文件,即 可以根据更新了版本标识的配置文件引入生成对应的程序页面。步骤305,服务器将携带了新的配置文件的程序页面发送给客户端的浏览器。步骤306,客户端通过自身的浏览器访问程序页面,并根据该程序页面中的配置文 件信息更新本地缓存。即在后续过程中,该客户端的浏览器将通过使用更新后的本地缓存 访问该变化后的静态文件。
具体的,在访问程序页面的过程中,浏览器将从程序页面获取到配置文件中的版 本标识,并根据版本标识与引入地址的映射关系,将静态文件的版本标识替换为静态文件 实际的引入地址,从而根据该静态文件实际的引入地址访问到静态文件。需要说明的是,在客户端更新本地缓存的过程中,还需要判断配置文件所对应的 静态文件是否发生变化。即客户端可以通过使用配置文件中的版本标识判断配置文件所对 应的静态文件是否发生变化。例如,本地缓存中的版本标识为20091010,而从配置文件中获 取到的版本标识为20091012,可以看出,该配置文件所对应的静态文件在2009. 10. 12发生 了变化。综上所述,当一个静态文件需要更改版本时,只需要更改配置文件中的版本标识 即可,并不需更改所有包含该静态文件的程序文件。需要说明的是,本申请方法可以根据实际需要对各个步骤顺序进行调整。本申请包括以下优点,1)保证客户端浏览器访问服务器端的最新静态文件。通过在服务器端生成静态文件的版本标识,从而决定客户端浏览器是从服务器端 下载最新静态文件还是在本地缓存中提取静态文件。而且当客户端使用不同的浏览器,或 者使用同一浏览器不同版本的缓存机制时,访问的静态文件都会由服务器端决定,即服务 器端统一决定客户端浏览器是否访问最新的静态文件,从而可以杜绝因静态文件过期导致 的程序问题。2)集中管理所有静态文件的版本标识。程序页面通过模板替换的方式从统一的配置文件中提取静态文件的引入地址,并 通过对配置文件的维护从而集中管理所有静态文件的版本标识。当需要更改某一个静态文 件的版本标识时,只需更改该静态文件在配置文件中对应的配置项即可,从而确保该静态 文件在所有程序页面中得以正确引用。3)通过工具自动更改静态文件的版本标识。当静态文件发生更改后,工具能够自动在配置文件中搜索到对应的配置项,并更 改配置文件中对应的版本标识,整个过程无需人工参与,提高了开发和维护效率。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。为了更加清楚的阐述本申请中所提出的控制浏览器缓存的方法,以下结合一个具 体的例子来详细说明。其中,该具体的例子以静态文件demo, js为例进行说明。如图4所示,为本申请实施例三中的一种控制浏览器缓存的方法流程图,包括以 下步骤步骤401,服务器为静态文件demo, js配置对应的配置文件demo = /rootpath/ demo, js ? ν = 20090928ο具体的,静态文件demo, js具有唯一的版本标识,该静态文件demo, js在配置文件 中的映射为 demo = /rootpath/demo. js ? ν = 20090928,其中 demo (即 20090928)为 demo, js的版本标识,/rootpath/demo. js ? ν = 20090928为引入地址。即配置文件为静态文件 demo, js 建立了版本标识(demo)与引入地址(/rootpath/demo. js ? ν = 20090928)的映
射关系。步骤402,服务器判断静态文件是否发生变化。当判断结果为是时,转到步骤403,否则,结束流程。步骤403,当静态文件demo, js更改后,服务器需要更新配置文件demo = / rootpath/demo. js ? ν = 20090928 中的版本标识。当静态文件demo, js 更改后,需要修改 /rootpath/demo. js ? ν = 20090928 (版 本标识demo)中的信息,即需要需要/rootpath/demo. js ? ν = 20090928中的200909 , 以时间版本标识为例,服务器获取当前时间,并根据当前时间获取静态文件对应的时间版 本标识。例如,当前时间为2009. 9. 30时,时间版本标识为20090930,对应的,需要将配置文 件 demo = /rootpath/demo. js ? ν = 20090928 更新为配置文件 demo = /rootpath/demo. js ? ν = 20090930。上述情况是以时间版本标识为例进行说明的,实际应用中,还可以为其他的版本 标识方式,以数字版本标识为例,为静态文件demo, js配置的配置文件可以为demo = / rootpath/demo. js ? ν = 0o当静态文件demo, js更改后,第一次需要将配置文件demo = /rootpath/demo. js ? ν = 0 更新为配置文件 demo = /rootpath/demo. js ? ν = 1 ;第二次 需要将配置文件demo = /rootpath/demo. js ? ν = 1更新为配置文件demo = /rootpath/ demo, js ? ν = 2 ;以此类推。对于其他的版本标识方式,处理过程类似,本申请中不再赘述,后续过程中以将配 置文件更新为demo = /rootpath/demo. js ? ν = 20090930为例进行说明。步骤404,服务器根据配置文件 demo = /rootpath/demo. js ? ν = 20090930 生成
程序页面。本申请中,可以通过模板替换的方式引入配置文件对应的版本标识,并将配置文 件 demo = /rootpath/demo. js ? ν = 20090930 引入,从而生成程序页面。具体的,每个静态文件都有自身对应的模板,对于静态文件demo, js,版本标识为 demo,模板为# jsm [ “ demo ”],该jsm部分用于引入静态文件,而“ demo ”部分,用于引入配 置文件 demo = /rootpath/demo. js ? ν = 20090930。步骤405,服务器将静态文件demo, js对应的程序页面发送给客户端的浏览器。其 中,该程序页面中携带了静态文件demo, js对应的配置文件。步骤406,客户端通过自身的浏览器访问程序页面,并根据该程序页面中的配置文 件 demo = /rootpath/demo. js ? ν = 20090930 更新本地缓存中的静态文件 demo, js。具体的,在访问程序页面的过程中,浏览器将从程序页面获取到配置文件中的版 本标识demo,而通过使用静态文件demo, js对应的模板为#jsm[“demo”],当客户端访问包 含 demo, js 的程序页面时,#jsm[ “demo,,]会被替换为〈script src = "/rootpath/demo. js ? ν = 20090930"type ="text/javascript"X/script),^^,/rootpath/demo. js ? ν = 20090930为配置文件的版本标识demo部分。在配置文件的版本标识demo部分中,根据版本标识demo与引入地址的映射关系, 可以得到静态文件实际的引入地址,即/rootpath/demo. js ? ν = 20090930为demo, js的 引入地址,而客户端可以通过自身的浏览器访问/rootpath/demo. js ? ν = 20090930地址 所对应的静态文件demo, js。需要说明的是,本申请方法可以根据实际需要对各个步骤顺序进行调整。本申请包括以下优点,
1)保证客户端浏览器访问服务器端的最新静态文件。通过在服务器端生成静态文件的版本标识,从而决定客户端浏览器是从服务器端 下载最新静态文件还是在本地缓存中提取静态文件。而且当客户端使用不同的浏览器,或 者使用同一浏览器不同版本的缓存机制时,访问的静态文件都会由服务器端决定,即服务 器端统一决定客户端浏览器是否访问最新的静态文件,从而可以杜绝因静态文件过期导致 的程序问题。2)集中管理所有静态文件的版本标识。程序页面通过模板替换的方式从统一的配置文件中提取静态文件的引入地址,并 通过对配置文件的维护从而集中管理所有静态文件的版本标识。当需要更改某一个静态文 件的版本标识时,只需更改该静态文件在配置文件中对应的配置项即可,从而确保该静态 文件在所有程序页面中得以正确引用。3)通过工具自动更改静态文件的版本标识。当静态文件发生更改后,工具能够自动在配置文件中搜索到对应的配置项,并更 改配置文件中对应的版本标识,整个过程无需人工参与,提高了开发和维护效率。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。本申请中,为了能够在配置文件中更加容易地更改某一静态文件的版本标识(即 用于表示版本的标识),本申请中提供了一个基于eclipse的开发平台(该开发平台是使用 最为广泛的软件开发平台)的自动化修改版本标识工具,通过使用该自动化修改版本标识 工具,能够对静态文件的版本标识进行自动修改,从而使得上述控制浏览器缓存的方法的 整个过程无需人员手工干预,工具一键即可完成。如图5所示的架构流程示意图,其中,图 5中的各个部分均位于服务器端。需要说明的是,图5中的自动化修改版本标识工具可以是基于eclipse的开发平 台的,还可以为基于其他的开发平台的,本申请中不再对开发平台进行相应的说明。如图6所示,为基于上述的架构情况,本申请实施例四中的一种控制浏览器缓存 的方法流程图,包括以下步骤步骤601,当静态文件的版本标识发生改变时,自动化修改版本标识工具根据被修 改的静态文件的版本标识搜索配置文件,并找到该配置文件对应的配置项。步骤602,自动化修改版本标识工具根据当前的时间戳为最新版本标识自动更新 配置文件对应的配置项中的版本标识。具体的,在实际应用中,该版本标识可以作为静态文件的版本标识,即本步骤中, 自动化修改版本标识工具可以根据当前的时间戳为最新版本标识自动更新配置文件对应 的配置项中的版本标识。步骤603,自动化修改版本标识工具通过模板替换方式将配置文件引入到静态文 件引入模板中。步骤604,自动化修改版本标识工具根据引入后的配置文件引入模板生成程序页 面。其中,在该程序页面中,包含了静态文件对应的最新版本标识,该版本标识是携带于配 置文件中的。步骤605,自动化修改版本标识工具将程序页面发送给客户端的浏览器。步骤606,客户端的浏览器根据该程序页面获取最新版本标识的静态文件,即获取最新版本的静态文件。步骤607,客户端的浏览器根据该最新版本标识的静态文件更新本地缓存。需要说明的是,本申请方法可以根据实际需要对各个步骤顺序进行调整。综上所述,本申请中,当静态文件有更新时,通过更新引用地址中的版本标识,来 通知浏览器需要重新下载最新版本的静态文件并更新缓存。具体的,通过在配置文件中建立静态文件和引用地址的映射关系,所有页面不直 接包含有版本标识的静态文件引用地址,而是通过该映射关系载入每个静态文件的引用地 址。在软件的开发过程中,当静态文件更新后,通过自动化修改版本标识工具更新配置文件 中该静态文件对应的引用地址所包含的版本标识,从而使得该静态文件相关的所有页面中 的引用地址都得以更新。本申请包括以下优点,1)保证客户端浏览器访问服务器端的最新静态文件。通过在服务器端生成静态文件的版本标识,从而决定客户端浏览器是从服务器端 下载最新静态文件还是在本地缓存中提取静态文件。而且当客户端使用不同的浏览器,或 者使用同一浏览器不同版本的缓存机制时,访问的静态文件都会由服务器端决定,即服务 器端统一决定客户端浏览器是否访问最新的静态文件,从而可以杜绝因静态文件过期导致 的程序问题。2)集中管理所有静态文件的版本标识。程序页面通过模板替换的方式从统一的配置文件中提取静态文件的引入地址,并 通过对配置文件的维护从而集中管理所有静态文件的版本标识。当需要更改某一个静态文 件的版本标识时,只需更改该静态文件在配置文件中对应的配置项即可,从而确保该静态 文件在所有程序页面中得以正确引用。3)通过工具自动更改静态文件的版本标识。当静态文件发生更改后,工具能够自动在配置文件中搜索到对应的配置项,并更 改配置文件中对应的版本标识,整个过程无需人工参与,提高了开发和维护效率。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。为了更加清楚的阐述本申请中所提出的控制浏览器缓存的方法,以下结合一个具 体的例子来详细说明。其中,该具体的例子以静态文件demo, js为例进行说明。如图7所示,为本申请实施例五中的一种控制浏览器缓存的方法流程图,包括以 下步骤步骤701,当静态文件demo, js的版本标识发生改变时,自动化修改版本标识工具 根据被修改的静态文件demo, js的版本标识搜索配置文件,并找到该配置文件对应的配置 项。其中,该配置文件所对应的配置项具体为demo = /rootpath/demo. js ? ν = 20090拟8。步骤702,自动化修改版本标识工具根据当前的时间戳2009. 11. 23为最新版本标 识自动更新配置文件对应的配置项demo = /rootpath/demo. js ? ν = 20090928中的版本 标识,即需要将配置文件对应的配置项demo = /rootpath/demo. js ? ν = 20090928更改 为 demo = /rootpath/demo. js ? ν = 20091123。具体的,在实际应用中,该版本标识可以作为静态文件的版本标识,即本步骤中, 自动化修改版本标识工具可以根据当前的时间戳为最新版本标识自动更新配置文件对应的配置项中的版本标识。步骤703,自动化修改版本标识工具通过模板替换方式将更新后的配置文件demo =/rootpath/demo. js ? ν = 20091123引入到静态文件引入模板中。步骤704,自动化修改版本标识工具根据引入后的配置文件引入模板生成程序页 面。其中,在该程序页面中,包含了静态文件对应的最新版本标识,该版本标识是携带于配 置文件中的。步骤705,自动化修改版本标识工具将程序页面发送给客户端的浏览器。步骤706,客户端的浏览器根据该程序页面获取最新版本标识的静态文件,即获取 最新版本的静态文件。具体的,最新版本的静态文件为〈script src = ”/rootpath/demo. js ? ν = 20091123" type = “ text/javascript" ></script>, ^ 中,/rootpath/demo. js ? ν = 20091123为配置文件的版本标识部分。步骤707,客户端的浏览器根据该最新版本标识/rootpath/demo. js ? ν = 20091123的静态文件更新本地缓存。需要说明的是,本申请方法可以根据实际需要对各个步骤顺序进行调整。本申请包括以下优点,1)保证客户端浏览器访问服务器端的最新静态文件。通过在服务器端生成静态文件的版本标识,从而决定客户端浏览器是从服务器端 下载最新静态文件还是在本地缓存中提取静态文件。而且当客户端使用不同的浏览器,或 者使用同一浏览器不同版本的缓存机制时,访问的静态文件都会由服务器端决定,即服务 器端统一决定客户端浏览器是否访问最新的静态文件,从而可以杜绝因静态文件过期导致 的程序问题。2)集中管理所有静态文件的版本标识。程序页面通过模板替换的方式从统一的配置文件中提取静态文件的引入地址,并 通过对配置文件的维护从而集中管理所有静态文件的版本标识。当需要更改某一个静态文 件的版本标识时,只需更改该静态文件在配置文件中对应的配置项即可,从而确保该静态 文件在所有程序页面中得以正确引用。3)通过工具自动更改静态文件的版本标识。当静态文件发生更改后,工具能够自动在配置文件中搜索到对应的配置项,并更 改配置文件中对应的版本标识,整个过程无需人工参与,提高了开发和维护效率。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。本申请上述实施例提供了控制浏览器缓存的方法和应用场景,相应地,本申请还 通过以下实施例提供了应用上述方法的设备和系统。如图8所示,为本申请实施例六中的一种服务器的结构示意图,包括获取模块81,用于获取生成网页的静态文件。判断模块82,用于判断所述获取模块81获取的所述静态文件是否发生变化。生成模块83,用于当所述判断模块82的判断结果为所述静态文件发生变化时,生 成所述静态文件对应的版本标识。发送模块84,用于将所述生成模块83生成的所述版本标识发送给浏览器,由所述浏览器根据所述版本标识更新本地缓存。进一步的,如图9所示,所述服务器还包括配置模块85,用于为每个静态文件配置对应的配置文件;所述配置文件中建立了 所述静态文件对应的版本标识与所述静态文件地址的对应关系。所述静态文件对应的版本标识包括所述静态文件对应的时间版本标识;进一步 的,如图10所示,所述生成模块83包括第一获取子模块831,用于获取当前时间;第二获取子模块832,用于将所述第一获取子模块831获取的所述当前时间作为 所述静态文件对应的时间版本标识。此外,所述发送模块84具体用于,将所述静态文件对应的配置文件发送给所述浏 览器,所述配置文件中携带了所述版本标识与所述静态文件地址的对应关系。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合 并为一个模块,也可以进一步拆分成多个子模块。本申请包括以下优点,1)保证客户端浏览器访问服务器端的最新静态文件。通过在服务器端生成静态文件的版本标识,从而决定客户端浏览器是从服务器端 下载最新静态文件还是在本地缓存中提取静态文件。而且当客户端使用不同的浏览器,或 者使用同一浏览器不同版本的缓存机制时,访问的静态文件都会由服务器端决定,即服务 器端统一决定客户端浏览器是否访问最新的静态文件,从而可以杜绝因静态文件过期导致 的程序问题。2)集中管理所有静态文件的版本标识。程序页面通过模板替换的方式从统一的配置文件中提取静态文件的引入地址,并 通过对配置文件的维护从而集中管理所有静态文件的版本标识。当需要更改某一个静态文 件的版本标识时,只需更改该静态文件在配置文件中对应的配置项即可,从而确保该静态 文件在所有程序页面中得以正确引用。3)通过工具自动更改静态文件的版本标识。当静态文件发生更改后,工具能够自动在配置文件中搜索到对应的配置项,并更 改配置文件中对应的版本标识,整个过程无需人工参与,提高了开发和维护效率。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。如图11所示,为本申请实施例七中的一种客户端,包括接收模块91,用于通过自身的浏览器接收来自服务器的版本标识,所述版本标识 为静态文件对应的版本标识。判断模块92,用于判断所述接收模块91接收的版本标识所对应的静态文件是否
发生变化。处理模块93,用于当所述判断模块92的判断结果为所述静态文件发生变化时,根 据所述接收模块91接收的所述版本标识更新本地缓存。具体的,所述接收模块91具体用于,通过自身的浏览器接收来自所述服务器的所 述静态文件对应的配置文件,所述配置文件中携带了所述版本标识与所述静态文件地址的 对应关系。
本申请实施例七提供的客户端中,如图12所示,所述处理模块93进一步包括判断子模块931,用于在所述浏览器根据所述静态文件的地址访问所述静态文件 时,判断所述版本标识是否高于本地缓存中的版本标识;更新子模块932,用于当所述判断子模块931的判断结果为所述版本标识高于所 述本地缓存中的版本标识时,根据所述版本标识与所述静态文件地址的对应关系更新本地缓存。进一步的,如图13所示,所述客户端还包括访问模块94,用于根据所述静态文件的地址访问所述静态文件。进一步的,如图14所示,所述访问模块94包括第一获取子模块941,用于通过所述浏览器从所述配置文件中获取对应的版本标 识;第二获取子模块942,用于根据所述第一获取子模块941获取的所述版本标识,并 通过所述版本标识与所述静态文件地址的对应关系获取所述静态文件的地址;访问子模块943,用于根据第二获取子模块942获取的所述静态文件的地址访问 所述静态文件。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合 并为一个模块,也可以进一步拆分成多个子模块。本申请包括以下优点,1)保证客户端浏览器访问服务器端的最新静态文件。通过在服务器端生成静态文件的版本标识,从而决定客户端浏览器是从服务器端 下载最新静态文件还是在本地缓存中提取静态文件。而且当客户端使用不同的浏览器,或 者使用同一浏览器不同版本的缓存机制时,访问的静态文件都会由服务器端决定,即服务 器端统一决定客户端浏览器是否访问最新的静态文件,从而可以杜绝因静态文件过期导致 的程序问题。2)集中管理所有静态文件的版本标识。程序页面通过模板替换的方式从统一的配置文件中提取静态文件的引入地址,并 通过对配置文件的维护从而集中管理所有静态文件的版本标识。当需要更改某一个静态文 件的版本标识时,只需更改该静态文件在配置文件中对应的配置项即可,从而确保该静态 文件在所有程序页面中得以正确引用。3)通过工具自动更改静态文件的版本标识。当静态文件发生更改后,工具能够自动在配置文件中搜索到对应的配置项,并更 改配置文件中对应的版本标识,整个过程无需人工参与,提高了开发和维护效率。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。本申请实施例八中还提出了一种控制浏览器缓存的系统,包括服务器,用于获取生成网页的静态文件,并判断所述静态文件是否发生变化;当判 断结果为所述静态文件发生变化时,生成所述静态文件对应的版本标识;并将所述版本标 识发送给浏览器;客户端,用于通过自身的浏览器接收所述版本标识,并根据所述版本标识更新本 地缓存。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助 软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更 佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的 部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若 干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行 本发明各个实施例所述的方法。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视本发明的保护范围。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分 布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上 述实施例的模块可以集成于一体,也可以分离部署;可以合并为一个模块,也可以进一步拆 分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领 域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1. 一种控制浏览器缓存的方法,其特征在于,包括以下步骤 服务器获取生成网页的静态文件,并判断所述静态文件是否发生变化;当判断结果为所述静态文件发生变化时,所述服务器生成所述静态文件对应的版本标识;所述服务器将所述版本标识发送给浏览器,由所述浏览器根据所述版本标识更新本地缓存。
2.如权利要求1所述的方法,其特征在于,所述服务器生成所述静态文件对应的版本 标识之前,还包括所述服务器为每个静态文件配置对应的配置文件;所述配置文件中建立了所述静态文 件对应的版本标识与所述静态文件地址的对应关系。
3.如权利要求2所述的方法,其特征在于,所述静态文件对应的版本标识包括所述静 态文件对应的时间版本标识;所述服务器生成所述静态文件对应的版本标识包括所述服务器获取当前时间,并将所述当前时间作为所述静态文件对应的时间版本标识。
4.如权利要求2所述的方法,其特征在于,所述服务器将所述版本标识发送给浏览器 包括所述服务器将所述静态文件对应的配置文件发送给所述浏览器,所述配置文件中携带 了所述版本标识与所述静态文件地址的对应关系。
5.如权利要求4所述的方法,其特征在于,所述浏览器根据所述版本标识更新本地缓 存包括在所述浏览器根据所述静态文件的地址访问所述静态文件时,所述浏览器判断所述版 本标识是否高于本地缓存中的版本标识;当判断结果为所述版本标识高于所述本地缓存中的版本标识时,则所述浏览器根据所 述版本标识与所述静态文件地址的对应关系更新本地缓存。
6.如权利要求5所述的方法,其特征在于,所述浏览器根据所述静态文件的地址访问 所述静态文件包括所述浏览器从所述配置文件中获取对应的版本标识;所述浏览器根据所述版本标识,并通过所述版本标识与所述静态文件地址的对应关系 获取所述静态文件的地址;所述浏览器根据所述静态文件的地址访问所述静态文件。
7. 一种服务器,其特征在于,包括 获取模块,用于获取生成网页的静态文件;判断模块,用于判断所述获取模块获取的所述静态文件是否发生变化; 生成模块,用于当所述判断模块的判断结果为所述静态文件发生变化时,生成所述静 态文件对应的版本标识;发送模块,用于将所述生成模块生成的所述版本标识发送给浏览器,由所述浏览器根 据所述版本标识更新本地缓存。
8.如权利要求7所述的服务器,其特征在于,还包括配置模块,用于为每个静态文件配置对应的配置文件;所述配置文件中建立了所述静态文件对应的版本标识与所述静态文件地址的对应关系。
9.如权利要求8所述的服务器,其特征在于,所述静态文件对应的版本标识包括所述 静态文件对应的时间版本标识;所述生成模块包括 第一获取子模块,用于获取当前时间;第二获取子模块,用于将所述第一获取子模块获取的所述当前时间作为所述静态文件 对应的时间版本标识。
10.如权利要求8所述的服务器,其特征在于,所述发送模块具体用于,将所述静态文件对应的配置文件发送给所述浏览器,所述配 置文件中携带了所述版本标识与所述静态文件地址的对应关系。
11.一种客户端,其特征在于,包括接收模块,用于通过自身的浏览器接收来自服务器的版本标识,所述版本标识为静态 文件对应的版本标识;判断模块,用于判断所述接收模块接收的版本标识所对应的静态文件是否发生变化; 处理模块,用于当所述判断模块的判断结果为所述静态文件发生变化时,根据所述接 收模块接收的所述版本标识更新本地缓存。
12.如权利要求11所述的客户端,其特征在于,所述接收模块具体用于,通过自身的浏览器接收来自所述服务器的所述静态文件对应 的配置文件,所述配置文件中携带了所述版本标识与所述静态文件地址的对应关系。
13.如权利要求12所述的客户端,其特征在于,所述处理模块包括判断子模块,用于在所述浏览器根据所述静态文件的地址访问所述静态文件时,判断 所述版本标识是否高于本地缓存中的版本标识;更新子模块,用于当所述判断子模块的判断结果为所述版本标识高于所述本地缓存中 的版本标识时,根据所述版本标识与所述静态文件地址的对应关系更新本地缓存。
14.如权利要求13所述的客户端,其特征在于,还包括访问模块,用于根据所述静态文件的地址访问所述静态文件; 所述访问模块包括第一获取子模块,用于通过所述浏览器从所述配置文件中获取对应的版本标识; 第二获取子模块,用于根据所述第一获取子模块获取的所述版本标识,并通过所述版 本标识与所述静态文件地址的对应关系获取所述静态文件的地址;访问子模块,用于根据第二获取子模块获取的所述静态文件的地址访问所述静态文件。
15.一种控制浏览器缓存的系统,其特征在于,包括服务器,用于获取生成网页的静态文件,并判断所述静态文件是否发生变化;当判断结 果为所述静态文件发生变化时,生成所述静态文件对应的版本标识;并将所述版本标识发 送给浏览器;客户端,用于通过自身的浏览器接收所述版本标识,并根据所述版本标识更新本地缓存。
全文摘要
本申请公开了一种控制浏览器缓存的方法、装置和系统,该方法包括以下步骤服务器获取生成网页的静态文件,并判断所述静态文件是否发生变化;当判断结果为所述静态文件发生变化时,所述服务器生成所述静态文件对应的版本标识;所述服务器将所述版本标识发送给浏览器,由所述浏览器根据所述版本标识更新本地缓存。本申请中,保证客户端浏览器访问服务器端的最新静态文件,集中管理所有静态文件的版本标识,并通过工具自动更改静态文件的版本标识。
文档编号G06F9/445GK102109989SQ20091026587
公开日2011年6月29日 申请日期2009年12月29日 优先权日2009年12月29日
发明者袁志俊 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1