引用静态资源时加上时间戳,处理浏览器缓存问题

摘要:
浏览器端缓存机制有多种类型,可归纳为八种类型:http缓存http缓存是一种基于http协议的浏览器文件级缓存机制。这个问题可以通过重命名已更改的静态资源来解决。例如,将时间戳附加到静态文件,以使服务器认为它是不同的请求。Cookie通常在http请求的头中发送到服务器。cookie记录主要由键、值、字段、过期时间和大小组成。普通用户保存用户身份验证信息。Cookie的最大长度和域名数量由不同的浏览器决定。sessionStoragesessionStorage对象主要用于存储会话的小块数据。

项目问题

更新上传CSS文件或JS文件后,安卓手机浏览器刷新,页面样式没有改变

问题解决

利用PHP语言,在引用静态资源时加上时间戳

1 <link rel="stylesheet" type="text/css" href="http://t.zoukankan.com/css/style.css?time=<?php echo date("Ymd",time())?>"/>

八种浏览器缓存


浏览器缓存(Browser Caching)是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体上加速网页展示给用户。浏览器端缓存的机制种类较多,总体归纳为八种:

http缓存

http缓存是基于HTTP协议的浏览器文件级缓存机制。即针对文件的重复请求情况下,浏览器可以根据协议头中expires、etag、last-modified等响应头来判断从服务器端请求文件还是从本地读取文件。

适当的缓存控制可以提升用户体验,但当应用频繁升级时,无法确保用户使用最新的静态内容。

这个问题可以通过把改动过的静态资源重命名来解决。比如,为静态文件附加时间戳,从而让服务器认为是不同的请求。

application cache

HTML5的应用缓存,是专门为开发离线Web应用设计。

cookie

Cookie(或者Cookies),指一般网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。cookie一般通过http请求中在头部一起发送到服务器端。一条cookie记录主要由键、值、域、过期时间、大小组成,一般用户保存用户的认证信息。cookie最大长度和域名个数由不同浏览器决定。

sessionStorage

sessionStorage对象主要用于针对会话的小段数据的存储。

localStorage

localStorage是html5的一种新的本地缓存方案,取代了globalStorage。一般用来存储ajax返回的数据,加快下次页面打开时的渲染速度。

IndexDB

webSql

CacheStorage

更多文章可以来我的个人博客里面看到

欢迎来访:绵绵小站

参考文章

  1. 九种浏览器端缓存方法知多少
  2. 浏览器缓存机制及一些缓存问题解决方法
  3. 浏览器缓存机制详解
  4. HTTP协议详解(真的很经典)
  5. 《JavaScript高级程序设计(第三版)》第23章 离线应用与客户端存储 P627
  6. 《高性能JavaScript》章节9.7缓存JavaScript文件 P171

免责声明:文章转载自《引用静态资源时加上时间戳,处理浏览器缓存问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇TCP的socket资源被耗尽的问题安装VSTO环境的方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[Android Security] 静态分析Android程序——smali文件解析

cp : https://blog.csdn.net/hp910315/article/details/51823236 cp : http://www.jb51.net/softjc/119036.html 静态分析Android程序的两种方法: 一、阅读反编译生成的Dalvik字节码。 1、使用文本编辑器阅读baksmali反编译生成的smali文件...

Java 开发 2.0: 现实世界中的 Redis

原文地址:http://www.ibm.com/developerworks/cn/java/j-javadev2-22/ 之前,我已在本系列中讨论过 NoSQL 的概念,也介绍了一些与 Java 平台兼容的 NoSQL 数据存储,其中包括 Google 的 Bigtable 和 Amazon 的 SimpleDB。此外,我还讨论过较为常见的基于服务器的...

ICMP报文类型

 类型代码 类型描写叙述0 响应应答(ECHO-REPLY) 3 不可到达 4 源抑制 5 重定向 8 响应请求(ECHO-REQUEST) 11 超时 12 參数失灵 13 时间戳请求 14 时间戳应答 15 信息请求(*已作废) 16 信息应答(*已作废) 17 地址掩码请求 18 地址掩码应答 用wireshark查看 附: 几种常见...

Django框架深入了解——Django中的缓存

Django框架深入了解——Django中的缓存 一、Django中的缓存: 前言: ​ 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力. 缓存是将一些常用的数...

hbase 取多个版本数据

http://jiajun.iteye.com/blog/945358 HBase如何存取多个版本的值? 废话少说,一般情况下使用Put的这个方法保存一个版本: Java代码 /** *AddthespecifiedcolumnandvaluetothisPutoperation. *@paramfamilyfamilyname *@paramq...

【转】JAVA 8 日期/时间(Date Time)API指南

前言 本来想写下Java 8的日期/时间API,发现已经有篇不错的文章了,那就直接转载吧~ PS:主要内容没变,做了部分修改。 原文链接: journaldev 翻译: ImportNew.com - Justin Wu译文链接: http://www.importnew.com/14140.html Java 8中的日期/时间(Date/Time)A...