资源文件的时间戳设计

在互联网应用中,为了提高用户的浏览速度,开发人员需要让浏览器准确的缓存资源文件,如JS,CSS和图片文件。所以需要在使用JS和CSS文件时加一个时间戳。因为如果文件名一样,但时间戳不一样,浏览器会认为是不同的文件而重新下载,不使用缓存,如hello.js?V=20120212

 

时间戳的设计方案

 

 

方案使用场景优点缺点
不使用时间戳发布频率非常高,如每日都有多次发布不需要实现时间戳管理没有缓存,影响用户访问速度。
每次项目发布更新所有静态资源的时间戳发布频率比较低,如每月一次发布实现比较简单每次项目发布,用户需要更新所有静态资源的缓存。
发布时候,只更新修改过静态资源的时间戳发布频率不是非常频繁。为浏览器提供了非常准确的缓存实现比较复杂,有很多问题需要解决
使用apache的缓存配置发布频率较高,如每周几次不需要实现时间戳适用场景较少。

 

当然方案3是最好的解决方案,通过SVN接口找到本次项目修改的文件也不难,但是修改时间戳时有几个问题比较麻烦。

  1. 如果用户使用JS来导入JS,这里面的JS文件也需要更新,那么需要解析JS文件。
  2. CSS文件里引用了图片,需要更新图片的时间戳,那么需要解析CSS文件。

使用apache的缓存配置。设置文件的缓存周期为1天。

ExpiresActive on

#缓存1天。

ExpiresBytype text/css "access plus 1 days "

ExpiresByType application/x-javascript "access plus 1 days "

ExpiresByType image/jpeg "access plus 1 days "

Expiresbytype image/gif "access plus 1 days "

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值