`

web app 禁用手机浏览器缓存方法

    博客分类:
  • app
web 
阅读更多

文章来源:http://www.itnose.net/detail/6048607.html 更多文章:http://www.itnose.net/type/83.html

开发过web app的同学,特别是前端人员,都碰到这烦人的事情,JS或CSS代码改变,可手机浏览器怎么刷新都不更新,手机浏览器的缓存特别恶劣。

所以今天贴个方法解决这问题。记得,本地调试的时候贴上,上线后要删除哦,免得访问者浏览体验慢。

代码:

<meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">

 把上面的代码贴到HEAD里面即可。

 

顺便贴个缓存的资料:

1.概念

Cache-control用于控制HTTP缓存(在HTTP/1.0中可能部分没实现,仅仅实现了Pragma: no-cache)

数据包中的格式:

Cache-Control: cache-directive

cache-directive可以为以下:

request时用到:

| "no-cache"
| "no-store"
| "max-age" "=" delta-seconds
| "max-stale" [ "=" delta-seconds ]
| "min-fresh" "=" delta-seconds
| "no-transform"
| "only-if-cached"
| "cache-extension"

response时用到:

| "public"
| "private" [ "=" <"> field-name <"> ]
| "no-cache" [ "=" <"> field-name <"> ]
| "no-store"
| "no-transform"
| "must-revalidate"
| "proxy-revalidate"
| "max-age" "=" delta-seconds
| "s-maxage" "=" delta-seconds
| "cache-extension"
部分说明:
根据是否可缓存分为
Public  指示响应可被任何缓存区缓存。
Private  指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的
部分响应消息,此响应消息对于其他用户的请求无效。
no-cache  指示请求或响应消息不能缓存(HTTP/1.0用Pragma的no-cache替换)
根据什么能被缓存
no-store  用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
根据缓存超时
max-age  指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
min-fresh  指示客户机可以接收响应时间小于当前时间加上指定时间的响应。
max-stale  指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以
接收超出超时期指定值之内的响应消息。
Expires 表示存在时间,允许客户端在这个时间之前不去检查(发请求),等同max-age的
效果。但是如果同时存在,则被Cache-Control的max-age覆盖。
格式:
Expires = "Expires" ":" HTTP-date
例如
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
 
2.应用
通过HTTP的META设置expires和cache-control
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta http-equiv="Expires" content="Mon, 20 Jul 2009 23:00:00 GMT" />
上述设置仅为举例,实际使用其一即可。这样写的话仅对该网页有效,对网页中的图片或其他请求无效,并不会做任何cache。
这样客户端的请求就多了,尽管只是检查Last-modified状态的东西,但是请求一多对浏览速度必定有影响。
如果要对文件添加cache可以通过apache的mod_expire模块,写法为
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 days"
</IfModule>
记得ExpiresActive设为On,我起先没设置On,似乎怎样YSlow都查不到缓存机制。这样添加的话就是默认所有的。
如果要针对个别MIME类型则可以:
ExpiresByType image/gif "access plus 5 hours 3 minutes"
见 Apache Module mod_expires
另外,当点击浏览器上的刷新,客户端发送的请求中均是max-age=0,表示validate操作,发送请求到服务器
要求检查cache,再更新cache,一般得到的是304 Not Modified,表示没变动。

 

 

 
 
 

 

分享到:
评论

相关推荐

    System.Web.Optimization.HashCache:在调试模式下为您的 ASP.NET 应用程序自动捆绑缓存破坏! “因为 dat IE 缓存。”

    一个帮助包转换,当优化被禁用时防止缓存包内容 - 当调试被启用或 BundleTable.EnableOptimizations 为 false 时。 在 Nuget 上获取它! Install-Package System.Web.Optimization.HashCache 电梯演讲 当您在调试...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    5.4.2 通过App_Code目录使用组件 5.4.3 通过Bin目录使用组件 5.5 扩展HTTP管道 5.5.1 HTTP处理程序 5.5.2 创建自定义的HTTP处理程序 5.5.3 配置自定义的HTTP处理程序 5.5.4 使用无须配置的HTTP处理...

    ASP.NET4高级程序设计(第4版) 3/3

    5.4.2 通过App_Code目录使用组件 162 5.4.3 通过Bin目录使用组件 163 5.5 扩展HTTP管道 165 5.5.1 HTTP处理程序 165 5.5.2 创建自定义的HTTP处理程序 167 5.5.3 配置自定义的HTTP处理程序 168 5.5.4 ...

    ASP.NET2.0高级编程(第4版)1/6

    29.3 部署Web应用程序的方法1038 29.3.1 使用XCopy1039 29.3.2 使用VS Copy  Web Site选项1041 29.3.3 部署预编译的  Web应用程序1044 29.3.4 建立安装程序1046 29.4 安装程序的选项1053 29.4.1 使用部署项目的...

    2.ASP.NET.2.0.高级编程(第4版) [1/7]

    3.7.6 \App_WebReferences文件夹 74 3.7.7 \App_Browsers文件夹 74 3.8 编译 75 3.9 Global.asax 78 3.10 小结 79 第4章 ASP.NET服务器控件和客户端脚本 81 4.1 ASP.NET服务器控件 81 4.1.1 服务器控件的类型...

    【最新版】macpilot.dmg【亲测可用】最好的解锁Mac超过1,200个功能

    放弃浪费时间的图形动画,防止系统休眠,暂停Safari的Web缓存,禁用App Nap,删除下载的文件警告消息等等! 系统资料 精美的系统配置文件,概述了高级系统信息。从图形卡和RAM总线速度到系统序列号和处理器信息,...

    IIS6.0 IIS,互联网信息服务

    以及引入了命令行工具 Appcmd.exe ,给 Web 服务器的日常管理、监视和配置提供了除图形接口外的另一种方式,更为简单、高效。 同Windows XP一样,在Windows Vista的默认设置下,IIS (Internet 信息服务) 7.0未予安装...

    citrix 中文管理操作手册

    选择资源类型和发布方法 40 定位要发布的应用程序 41 验证已发布应用程序的命令行参数 42 在内容与已发布应用程序之间建立信任关系 42 禁用所选已发布应用程序的命令行验证 42 禁用服务器上所有已发布应用程序的...

    新版Android开发教程.rar

    � MVC 和 Web APP 架构 Android Android Android Android 开发背景 � 计算技术、无线接入技术的发展,使嵌入式系统逐渐有能力对桌面系统常规业务进行支持。 � 谷歌长期以来奉行的移动发展战略:通过与全球各地的...

    xBrowserSync-crx插件

    本地书签的填充花费的时间少得多•同步进行时,UI更新为显示同步动画•更新了浏览器图标以反映同步状态和方向(上传/下载)•清除本地浏览器缓存或第三方隐私插件时,同步不再被禁用•为Chrome特定的URL加书签(即...

Global site tag (gtag.js) - Google Analytics