一种浏览器缓存控制方法及系统技术领域
本发明涉及浏览器缓存技术领域,具体涉及一种浏览器缓存控制方法及
系统。
背景技术
对静态文件(包括javascript文件,css文件等)进行浏览器端缓存一直
是提升浏览速度的关键一步,通过浏览器缓存可以减少静态文件对网络带宽
的消耗、减少服务器的请求压力;由于对浏览器缓存的不熟悉,浏览器缓存
却经常给开发人员的开发以及版本升级带来各种麻烦。主要体现在以下两
点:
(1)开发的静态文件修改了,浏览器却还是使用着旧版本的静态文件
运行,导致静态文件修改的内容不能及时得到响应。
(2)静态文件没有进行修改,但是浏览器还是不使用缓存,导致与web
服务器频繁交互界面打开缓慢。
发明内容
本发明所要解决的技术问题是提供一种浏览器缓存控制方法及系统,能
够灵活的控制浏览器如何加载静态文件,提高开发和维护效率。
本发明解决上述技术问题的技术方案如下:
一方面,本发明提供了一种浏览器缓存控制方法,所述方法包括:
S1、设置于web服务器中的标签接收浏览器发送的访问请求,所述访问
请求中携带访问路径URL;
S2、预先设置于web服务器中的缓存过滤器获取符合预定拦截条件的访
问路径URL,并设置该访问路径URL的Cache-Control信息;
S3、调用与所述访问路径URL对应的标签类并根据该访问路径URL的
Cache-Control信息对所述访问路径URL添加文件修改时间戳;
S4、标签类根据所述访问请求以及带有文件修改时间戳的访问路径URL,
组装成jsp标准标签,并输出给浏览器;
S5、浏览器对所述jsp标准标签进行解析,获得其中的带有文件修改时
间戳的访问路径URL;
S6、判断该带有文件修改时间戳的访问路径URL是否在浏览器缓存中存
在,并根据判断结果,确定从浏览器缓存中读取访问文件或从web服务器重
新加载文件。
另一方面,本发明提供了一种浏览器缓存控制系统,所述系统包括web
服务器和浏览器;
所述web服务器包括:
标签,用于接收浏览器发送的访问请求,所述访问请求中携带访问路径
URL;
缓存过滤器,用于获取符合预定拦截条件的访问路径URL,并设置该访
问路径URL的Cache-Control信息;
标签类,用于根据该访问路径URL的Cache-Control信息对所述访问路
径URL添加文件修改时间戳;以及根据所述访问请求和带有文件修改时间戳
的访问路径URL,组装成jsp标准标签,并输出给浏览器;
所述浏览器包括:
解析模块,用于对所述jsp标准标签进行解析,获得其中的带有文件修
改时间戳的访问路径URL;
判断模块,用于判断该带有文件修改时间戳的访问路径URL是否在浏览
器缓存中存在;
读取/加载模块,用于根据判断结果,确定从浏览器缓存中读取访问文
件或从web服务器重新加载文件。
本发明提供的一种浏览器缓存控制方法及系统,web服务器中的缓存过
滤器截取符合条件的访问路径URL,并设置URL的Cache-Control信息,并
对访问路径URL添加文件修改时间戳,将访问请求以及带有文件修改时间戳
的访问路径URL组装成jsp标准标签,并输出给浏览器,浏览器经过解析jsp
标准标签获取带有文件修改时间戳的访问路径URL,并判断该带有文件时间
戳的访问路径URL是否在本地缓存存在,若存在,从直接从本地缓存中获取
对应的访问文件,若不存在,则重新从web服务器加载对应的访问文件,通
过添加静态文件的文件修改时间戳使静态文件发生变化时,来控制浏览器如
何加载静态文件,提高开发和维护效率,解决了现有技术没有使用浏览器缓
存导致与web服务器频繁进行交互以及静态文件修改后在浏览器缓存不生效
的问题。
附图说明
图1为本发明实施例一的一种浏览器缓存控制方法流程图;
图2为本发明实施例一的一种浏览器缓存控制方法的整个工作过程流程
图;
图3为本发明实施例一中web服务器工作过程示意图;
图4为本发明实施例二的一种浏览器缓存控制系统示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本
发明,并非用于限定本发明的范围。
实施例一、一种浏览器缓存控制方法。下面结合图1-图3对本实施例提
供的方法进行详细说明。
参见图1,S1、设置于web服务器中的标签接收浏览器发送的访问请求,
所述访问请求中携带访问路径URL。
具体的,参见图2,当用户通过浏览器访问web服务器时,设置于web
服务器中的标签接收浏览器发送的访问请求,其中,访问请求中携带有访问
路径URL(UniformResourceLocator,统一资源定位符)。
S2、预先设置于web服务器中的缓存过滤器获取符合预定拦截条件的访
问路径URL,并设置该访问路径URL的Cache-Control信息。
具体的,参见图3,预先在web服务器中添加缓存过滤器,缓存过滤器
对标签接收到的访问请求中的访问路径URL进行过滤,拦截符合预定拦截条
件的访问路径URL,即缓存过滤器对所有的访问路径URL进行判断,判断访
问路径URL对应的访问文件是否属于静态文件,比如,是否属于Javascript
文件或者CSS文件。若访问路径URL对应的访问文件为Javascript文件或
者CSS文件,缓存过滤器对其进行拦截,并设置这些访问路径URL的
Cache-Control信息。
S3、调用与所述访问路径URL对应的标签类并根据该访问路径URL的
Cache-Control信息对所述访问路径URL添加文件修改时间戳。
具体的,web服务器中的缓存过滤器对访问路径URL进行过滤并设置了
Cache-Control信息后,调用与这些访问路径URL对应的标签类,比如,若
访问路径URL对应的访问文件为Javascript文件,则调用ScriptCacheTag
标签类,ScriptCacheTag标签类根据设置的Cache-Control信息,对访问路
径URL添加文件修改时间戳,并将该文件修改时间戳缓存于web服务器缓存,
以便浏览器下次访问时,可以直接从web服务器缓存中读取。若访问路径URL
对应的访问文件为CSS文件,则调用CssCacheTag标签类,CssCacheTag标
签类根据设置的Cache-Control信息,对访问路径URL添加文件修改时间戳,
并将该文件修改时间戳缓存于web服务器缓存。
需要说明的是,本实施例中的文件修改时间戳缓存与web服务器的缓存
机制有多种,比如,持久缓存,即不会因web服务器出现异常情况而丢失;
内存缓存,即web服务器出现异常或者重启后,该文件修改时间戳会丢失;
空缓存,也即不缓存。当然,本实施例并不限于这几种缓存方式,也可以为
其它的缓存机制。
S4、标签类根据所述访问请求以及带有文件修改时间戳的访问路径URL,
组装成jsp标准标签,并输出给浏览器。
具体的,当访问路径URL添加了文件修改时间戳后,标签类根据访问请
求以及对应的带有文件修改时间戳的访问路径URL,将其重新组装成jsp标
准标签,并将该组装的jsp标准标签输出给浏览器。
S5、浏览器对所述jsp标准标签进行解析,获得其中的带有文件修改时
间戳的访问路径URL。
具体的,当浏览器接收到标签类传输的jsp标准标签,对该jsp标准标
签进行解析,解析得到其中的带有文件修改时间戳的访问路径URL。
S6、判断该带有文件修改时间戳的访问路径URL是否在浏览器缓存中存
在,并根据判断结果,确定从浏览器缓存中读取访问文件或从web服务器重
新加载文件。
具体的,当浏览器解析得到带有文件修改时间戳的访问路径URL后,判
断该带有文件修改时间戳的访问路径URL是否在浏览器缓存中存在。具体的
判断过程为:浏览器判断访问路径URL以及对应的文件修改时间戳是否均在
浏览器缓存中匹配,若匹配,则确定该带有文件修改时间戳的访问路径URL
在浏览器缓存中存在,则浏直接从本地缓存中读取与访问路径URL对应的访
问文件;若访问路径URL或者其对应的文件修改时间戳在浏览器缓存中不匹
配(即不存在该访问路径URL或者对应的访问文件已修改),则浏览器从web
服务器重新下载访问文件,并将该访问文件存储于浏览器缓存。
实施例二、一种浏览器缓存控制系统。下面结合图4对本实施例提供的
系统进行详细说明。
参见图4,本实施例提供的系统包括web服务器10和浏览器20,其中,
web服务器10包括标签101、缓存过滤器102、标签类103和时间戳缓存模
块104,浏览器20包括解析模块201、匹配模块202、判断模块203和读取/
加载模块204。
web服务器10中的标签101主要用于接收浏览器发送的访问请求,所述
访问请求中携带访问路径URL。
缓存过滤器102主要用于获取符合预定拦截条件的访问路径URL,并设
置该访问路径URL的Cache-Control信息。
具体的,当用户通过浏览器20访问web服务器10时,设置于web服务
器10中的标签101接收浏览器20发送的访问请求,其中,访问请求中携带
有访问路径URL(UniformResourceLocator,统一资源定位符)。
预先设置于web服务器10中的缓存过滤器102对标签101接收到的访
问请求中的访问路径URL进行过滤,拦截符合预定拦截条件的访问路径URL,
即缓存过滤器102对所有的访问路径URL进行判断,判断访问路径URL对应
的访问文件是否属于静态文件,比如,是否属于Javascript文件或者CSS
文件。若访问路径URL对应的访问文件为Javascript文件或者CSS文件,
缓存过滤器102对其进行拦截,并设置这些访问路径URL的Cache-Control
信息。
标签类103主要用于根据该访问路径URL的Cache-Control信息对所述
访问路径URL添加文件修改时间戳;以及根据所述访问请求和带有文件修改
时间戳的访问路径URL,组装成jsp标准标签,并输出给浏览器20。
时间戳缓存模块104主要用于将标签类103添加的访问路径URL的文件
修改时间戳缓存于web服务器缓存。
浏览器20中的解析模块201主要用于对标签类103传输的jsp标准标
签进行解析,获得其中的带有文件修改时间戳的访问路径URL。
匹配模块202主要用于将访问路径URL与对应的文件修改时间戳在浏览
器缓存中匹配。
判断模块203主要用于判断该带有文件修改时间戳的访问路径URL是否
在浏览器缓存中存在。
读取/加载模块204主要用于根据判断结果,确定从浏览器缓存中读取
访问文件或从web服务器10重新加载文件。
具体的,当浏览器20中的解析模块201解析得到带有文件修改时间戳
的访问路径URL后,判断模块203判断该带有文件修改时间戳的访问路径URL
是否在浏览器缓存中存在。具体的判断过程为:浏览器20中的匹配模块201
将访问路径URL以及对应的文件修改时间戳均在浏览器缓存中匹配,若匹配,
则确定该带有文件修改时间戳的访问路径URL在浏览器缓存中存在,则读取
/加载模块204直接从本地缓存中读取与访问路径URL对应的访问文件;若
访问路径URL或者其对应的文件修改时间戳在浏览器缓存中不匹配(即不存
在该访问路径URL或者对应的访问文件已修改),则读取/加载模块204从web
服务器10重新下载访问文件,并将该访问文件存储于浏览器缓存。
本发明提供的一种浏览器缓存控制方法及系统,web服务器中的缓存过
滤器截取符合条件的访问路径URL,并设置URL的Cache-Control信息,并
对访问路径URL添加文件修改时间戳,并将文件修改时间戳缓存于web服务
器缓存,将访问请求以及带有文件修改时间戳的访问路径URL组装成jsp标
准标签,并输出给浏览器,浏览器经过解析jsp标准标签获取带有文件修改
时间戳的访问路径URL,并判断该带有文件时间戳的访问路径URL是否在本
地缓存存在,若存在,从直接从本地缓存中获取对应的访问文件,若不存在,
则重新从web服务器加载对应的访问文件,通过添加静态文件的文件修改时
间戳并进行缓存,使静态文件发生变化时,来控制浏览器如何加载静态文件,
提高开发和维护效率,解决了现有技术没有使用浏览器缓存导致与web服务
器频繁进行交互以及静态文件修改后在浏览器缓存不生效的问题;另外,当
web服务器中的静态文件更新后,会立即通过文件修改时间戳反馈到浏览器,
不让浏览器使用过期的静态文件。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明
的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发
明的保护范围之内。