一种浏览器缓存控制方法及系统的制作方法

文档序号:9349743阅读:347来源:国知局
一种浏览器缓存控制方法及系统的制作方法
【技术领域】
[0001 ] 本发明涉及浏览器缓存技术领域,具体涉及一种浏览器缓存控制方法及系统。
【背景技术】
[0002]对静态文件(包括javascript文件,css文件等)进行浏览器端缓存一直是提升浏览速度的关键一步,通过浏览器缓存可以减少静态文件对网络带宽的消耗、减少服务器的请求压力;由于对浏览器缓存的不熟悉,浏览器缓存却经常给开发人员的开发以及版本升级带来各种麻烦。主要体现在以下两点:
[0003](I)开发的静态文件修改了,浏览器却还是使用着旧版本的静态文件运行,导致静态文件修改的内容不能及时得到响应。
[0004](2)静态文件没有进行修改,但是浏览器还是不使用缓存,导致与web服务器频繁交互界面打开缓慢。

【发明内容】

[0005]本发明所要解决的技术问题是提供一种浏览器缓存控制方法及系统,能够灵活的控制浏览器如何加载静态文件,提高开发和维护效率。
[0006]本发明解决上述技术问题的技术方案如下:
[0007]—方面,本发明提供了一种浏览器缓存控制方法,所述方法包括:
[0008]S1、设置于web服务器中的标签接收浏览器发送的访问请求,所述访问请求中携带访问路径URL ;
[0009]S2、预先设置于web服务器中的缓存过滤器获取符合预定拦截条件的访问路径URL,并设置该访问路径URL的Cache-Control信息;
[0010]S3、调用与所述访问路径URL对应的标签类并根据该访问路径URL的Cache-Control信息对所述访问路径URL添加文件修改时间戳;
[0011]S4、标签类根据所述访问请求以及带有文件修改时间戳的访问路径URL,组装成jsp标准标签,并输出给浏览器;
[0012]S5、浏览器对所述jsp标准标签进行解析,获得其中的带有文件修改时间戳的访问路径URL ;
[0013]S6、判断该带有文件修改时间戳的访问路径URL是否在浏览器缓存中存在,并根据判断结果,确定从浏览器缓存中读取访问文件或从web服务器重新加载文件。
[0014]另一方面,本发明提供了一种浏览器缓存控制系统,所述系统包括web服务器和浏览器;
[0015]所述web服务器包括:
[0016]标签,用于接收浏览器发送的访问请求,所述访问请求中携带访问路径URL ;
[0017]缓存过滤器,用于获取符合预定拦截条件的访问路径URL,并设置该访问路径URL的 Cache-Control 信息;
[0018]标签类,用于根据该访问路径URL的Cache-Control信息对所述访问路径URL添加文件修改时间戳;以及根据所述访问请求和带有文件修改时间戳的访问路径URL,组装成jsp标准标签,并输出给浏览器;
[0019]所述浏览器包括:
[0020]解析模块,用于对所述jsp标准标签进行解析,获得其中的带有文件修改时间戳的访问路径URL ;
[0021]判断模块,用于判断该带有文件修改时间戳的访问路径URL是否在浏览器缓存中存在;
[0022]读取/加载模块,用于根据判断结果,确定从浏览器缓存中读取访问文件或从web服务器重新加载文件。
[0023]本发明提供的一种浏览器缓存控制方法及系统,web服务器中的缓存过滤器截取符合条件的访问路径URL,并设置URL的Cache-Control信息,并对访问路径URL添加文件修改时间戳,将访问请求以及带有文件修改时间戳的访问路径URL组装成jsp标准标签,并输出给浏览器,浏览器经过解析jsp标准标签获取带有文件修改时间戳的访问路径URL,并判断该带有文件时间戳的访问路径URL是否在本地缓存存在,若存在,从直接从本地缓存中获取对应的访问文件,若不存在,则重新从web服务器加载对应的访问文件,通过添加静态文件的文件修改时间戳使静态文件发生变化时,来控制浏览器如何加载静态文件,提高开发和维护效率,解决了现有技术没有使用浏览器缓存导致与web服务器频繁进行交互以及静态文件修改后在浏览器缓存不生效的问题。
【附图说明】
[0024]图1为本发明实施例一的一种浏览器缓存控制方法流程图;
[0025]图2为本发明实施例一的一种浏览器缓存控制方法的整个工作过程流程图;
[0026]图3为本发明实施例一中web服务器工作过程示意图;
[0027]图4为本发明实施例二的一种浏览器缓存控制系统示意图。
【具体实施方式】
[0028]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0029]实施例一、一种浏览器缓存控制方法。下面结合图1-图3对本实施例提供的方法进行详细说明。
[0030]参见图1,S1、设置于web服务器中的标签接收浏览器发送的访问请求,所述访问请求中携带访问路径URL。
[0031 ] 具体的,参见图2,当用户通过浏览器访问web服务器时,设置于web服务器中的标签接收浏览器发送的访问请求,其中,访问请求中携带有访问路径URL (Uniform ResourceLocator,统一资源定位符)。
[0032]S2、预先设置于web服务器中的缓存过滤器获取符合预定拦截条件的访问路径URL,并设置该访问路径URL的Cache-Control信息。
[0033]具体的,参见图3,预先在web服务器中添加缓存过滤器,缓存过滤器对标签接收到的访问请求中的访问路径URL进行过滤,拦截符合预定拦截条件的访问路径URL,即缓存过滤器对所有的访问路径URL进行判断,判断访问路径URL对应的访问文件是否属于静态文件,比如,是否属于Javascript文件或者CSS文件。若访问路径URL对应的访问文件为Javascript文件或者CSS文件,缓存过滤器对其进行拦截,并设置这些访问路径URL的Cache-Control 信息。
[0034]S3、调用与所述访问路径URL对应的标签类并根据该访问路径URL的Cache-Control信息对所述访问路径URL添加文件修改时间戳。
[0035]具体的,web服务器中的缓存过滤器对访问路径URL进行过滤并设置了Cache-Control信息后,调用与这些访问路径URL对应的标签类,比如,若访问路径URL对应的访问文件为Javascript文件,则调用ScriptCacheTag标签类,ScriptCacheTag标签类根据设置的Cache-Control信息,对访问路径URL添加文件修改时间戳,并将该文件修改时间戳缓存于web服务器缓存,以便浏览器下次访问时,可以直接从web服务器缓存中读取。若访问路径URL对应的访问文件为CSS文件,则调用CssCacheTag标签类,CssCacheTag标签类根据设置的Cache-Control信息,对访问路径URL添加文件修改时间戳,并将该文件修改时间戳缓存于web服务器缓存。
[0036]需要说明的是,本实施例中的文件修改时间戳缓存与web服务器的缓存机制有多种,比如,持久缓存,即不会因web服务器出现异常情况而丢失;内存缓存,即web服务器出现异常或者重启后,该文件修改时间戳会丢失;空缓存,也即不缓存。当然,本实施例并不限于这几种缓存方式,也可以为其它的缓存机制。
[0037]S4、标签类根据所述访问请求以及带有文件修改时间戳的访问路径URL,组装成jsp标准标签,并输出给浏览器。
[0038]具体的,当访问路径URL添加了文件修改时间戳后,标签类根据访问请求以及对应的带有文件修改时间戳的访问路径URL,将其重新组装成jsp标准标签,并将该组装的jsp标准标签输出给浏览器。
[0039]S5、浏览器对所述jsp标准标签进行解析,获得其中的带有文件修改时间戳的访问路径URL。
[0040]具体的,当浏览器接收到标签类传输的jsp标准标签,对该jsp标准标签进行解析,解析得到其中的带有文件修改时间戳的访问路径URL。
[0041]S6、判断该带有文件修改时间戳的访问路径URL是否在浏览器缓存中存在,并根据判断结果,确定从浏览器缓存中读取访问文件或从web服务器重新加载文件。
[0042]具体的,当浏览器解析得到带有文件修改时间戳的访问路径URL后,判断该带有文件修改时间戳的访问路径URL是否在浏览器缓存中存在。具体的判断过程为:浏览器判断访问路径URL以及对应的文件修改时间戳是否均在浏览器缓存中匹配,若匹配,则确定该带有文件修改时间戳的访问路径URL在浏览器缓存中存在,则浏直接从本地缓存中读取与访问路径URL对应的访问文件;若访问路径URL或者其对应的文件修改时间戳在浏览器缓存中不匹配(即不存在该访问路径URL或者对应的访问文件已修改),则浏览器从web服务器重新下载访问文件,并将该访问文件存储于浏览器缓存。
[0043]实施例二、一种浏览器缓存控制系统。下面结合图4对本实施例提供的系统进行详细说明。
[0044]参见图4,本实施例提供的系统包括web服务器10和浏览器20,其中,web服务器10包括标签101、缓存过滤器102、标签类103和时间戳缓存模块104,浏览器20包括解析模块201、匹配模块202、判断模块203和读取/加载模块204。
[0045]web服务器10中的标签101主要用于接收浏览器发送的访问请求,所述访问请求中携带访问路径URL。
[0046]缓存过滤器102主要用于获取符合预定拦截条件的访问路径URL,并设置该访问路径 URL 的 Cache-Control 信息
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1