`
fantasy
  • 浏览: 507237 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

资源文件的时间戳设计

    博客分类:
  • web
 
阅读更多

在互联网应用中,为了提高用户的浏览速度,开发人员需要让浏览器准确的缓存资源文件,如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 "

 

分享到:
评论

相关推荐

    基于Android的文本笔记类APP设计.zip

    资源包含文件:设计报告word+APP项目Java源码+项目截图 设计实现一个 Android 系统下的文本笔记类 APP,要求按照 Org-mode 的方式实现纯文本任务管理。 定义任务(Item)和子任务,每一条 Item 包括定义任务状态、...

    基于SSM的电子商城+源代码+文档说明

    (1) 数据库及接口设计 文件中含有SQL文件 (2)开发环境搭建及项目初始化 配置Maven Mybatis-generator逆向生成数据对象以及时间戳优化 Mybatis-plugin开发助手 Mybatis-PageHelper分页助手 配置Spring、SpringMVC ...

    Easylogger轻量级日志的 linuxdemo

    EasyLogger 是一款超轻量级(ROM, RAM)、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目,例如: IoT 产品、可穿戴设备、智能家居等等。相比 log4c、zlog 这些知名的 C/C++ 日志库, EasyLogger 的功能更加...

    是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库,源码开放,非常适合对资源敏感的软件项目

    - 支持用户自定义输出方式(例如:终端、文件、数据库、串口、485、Flash...); - 日志内容可包含级别、时间戳、线程信息、进程信息等; - 日志输出被设计为线程安全的方式,并支持 **异步输出** 及 **缓冲输出** ...

    TabBars---VC6 IDE增强插件

    这个功能的使用很简单,首先打开某个资源,资源编辑窗口就成为当前窗口,此时单击工具栏的按钮就可以以文本的方式打开资源文件。 五 为选定的代码添加C风格的注释 这个功能就不多说了,就是使用一对/**/ 将选择的...

    心电采集数据100000个点(csv)

    "心电采集数据100000个点(csv)"是一项专为心脏病学、医学研究和数据科学领域的专业人士设计的数据库资源,它提供了高分辨率的心电图(ECG)数据,适用于各种临床和研究目的。此数据集由100000个数据点构成,记录了一...

    Visual C++网络通信编程实用案例精选_7

    67 2.7 获取计算机的所有网络资源 69 2.8 修改本地计算机的网络设置 70 2.9 获取计算机TCP/IP的所有信息 74 &lt;br&gt;第3章 局域网网络通信编程实例 79 3.1 获取网上邻居 79 3.1.1 实现原理...

    基于python的接口自动化测试框架+源代码+文档说明

    2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...

    基于python实现爬取携程景点数据与评论数据源码+项目说明.zip

    2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...

    EasyLogger 高性能的 C/C++ 日志库,源代码

    EasyLogger 是一款超轻量级(ROM, RAM)、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目,例如: IoT 产品、可穿戴设备、智能家居等等。相比 log4c、zlog 这些知名的 C/C++ 日志库, EasyLogger 的功能更加...

    PHP入门到精通

    27.6公共文件设计 27.7前台首页设计 27.8登录模块设计 27.9会员信息模块设计 27.10商品显示模块设计 27.11购物车模块设计 27.12收银台模块设计 27.13后台首页设计 27.14类别管理模块 27.15订单管理模块设计 27.16...

    PHP入门到精通02

    27.6公共文件设计 27.7前台首页设计 27.8登录模块设计 27.9会员信息模块设计 27.10商品显示模块设计 27.11购物车模块设计 27.12收银台模块设计 27.13后台首页设计 27.14类别管理模块 27.15订单管理模块设计 27.16...

    php网络开发完全手册

    1.1.4 相关资源及自学提示 4 1.2 PHP的应用范围及案例 5 1.2.1 PHP可以做什么 5 1.2.2 PHP擅长的几个领域及产品介绍 5 1.2.3 PHP不适合做什么 6 1.2.4 其他案例 6 1.3 PHP的Hello, world预览 6 1.3.1 第一个PHP程序...

    疫情数据追踪器:中国COVID-19历史与实时数据采集器

    『疫情数据追踪器:中国COVID-19历史与实时数据采集器』是一个强大的Python编写的数据采集工具,旨在从新浪新闻提供的数据接口中获取中国的疫情相关数据,并将信息整理成结构化的CSV文件格式,方便分析和可视化处理...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    1.3.4 时间戳 1.3.5 clob 1.3.6 blob 1.4 表 1.5 存储对象 1.5.1 视图 1.5.2 触发器 1.5.3 过程 1.5.4 函数 1.5.5 包 1.6 Oracle Database 11g的其他重要内容 1.6.1 索引 1.6.2 用户 1.6.3 表空间配额 1.6.4 同义词 ...

    dreamweaver的各种组件

    Shockwave Flash 3-4 这是一个专为Flash4设计的Dreamweaver插件,由于播放由Flash4 制 作需要系统安装flash player4所以这个插件在向HTML文件中插入flash4 动画时可以由用户指定是3.0版还是4.0版,如果浏览者的系统...

    meowoof:项目2

    细腻目录描述MeoWoof是一款移动...测验目前无需测试资源 [01-HTML-Git-CSS / 04-重要/良好的自述文件指南/README.md]接触电子邮件: 设计和建造作者: Rob Johnson( ) 奥布里马克( ) 塞尔吉奥·坎波斯( ) Trae M

    PHP和MySQL Web开发第4版pdf以及源码

    2.7.4 读取整个文件:readfile()、fpassthru()和file() 2.7.5 读取一个字符:fgetc() 2.7.6 读取任意长度:fread() 2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:...

    PHP和MySQL WEB开发(第4版)

    2.7.4 读取整个文件:readfile()、fpassthru()和file() 2.7.5 读取一个字符:fgetc() 2.7.6 读取任意长度:fread() 2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:file...

    PHP和MySQL Web开发第4版

    2.7.4 读取整个文件:readfile()、fpassthru()和file() 2.7.5 读取一个字符:fgetc() 2.7.6 读取任意长度:fread() 2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:...

Global site tag (gtag.js) - Google Analytics