`

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,表示没变动。

 

 

 
 
 

 

分享到:
评论

相关推荐

    APP源码,安卓应用嵌套浏览器实现app应用

    9. **数据存储**:如果应用需要保存用户的登录状态或者其它数据,可以使用WebView的`saveState`和`restoreState`方法,或者利用Web Storage(localStorage和sessionStorage)。 10. **调试**:开发者可以启用远程...

    Android页面浏览器Android页面浏览器

    6. **缓存机制**:为了提高用户体验,浏览器会使用本地缓存保存经常访问的网页数据。这包括HTTP缓存和App Cache,以及通过Service Worker实现的离线存储。 7. **性能优化**:考虑到移动设备的资源限制,Android...

    chrome在线调试Inspect空白问题

    4. **清除浏览器缓存和Cookie**: 清除可能干扰DevTools的存储数据。 5. **禁用扩展**: 进入`chrome://extensions/`页面,禁用所有扩展,然后逐个启用,找出引起问题的扩展。 6. **重置Chrome**: 如果上述方法无效,...

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

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

    安卓浏览器WebViewJSHTML5相关-一个安卓插件系统宿主程序就像一个浏览器但是点开的链接不是网页而是原生应用程序.rar

    另外,优化WebView性能包括减少资源加载时间、缓存策略设置、禁用不必要的WebView特性等。 7. **程序运行**:描述提到部分代码可能需要调整才能运行,这可能是由于依赖库、API级别、权限设置或其他配置问题。调试...

    ASP.NET与IE11兼容性解决方法

    7. **清理缓存**:清除浏览器缓存,因为旧的JavaScript文件可能仍然在缓存中,导致问题持续存在。 通过以上步骤,应该可以解决“__doPostBack”未定义的问题。如果问题仍然存在,可能需要进一步检查代码和项目设置...

    安卓封装网址APP源码

    【安卓封装网址APP源码】是一个专为Android平台设计的应用程序开发项目,它允许开发者将一个Web应用程序(通常由HTML、CSS和JavaScript组成)封装成一个原生的Android APK,以便用户可以在手机上像使用普通APP一样...

    android webview 中localStorage无效的解决方法

    这通常是因为WebView的一些设置没有正确配置,导致localStorage功能被禁用或者无法正常工作。以下是一些解决这个问题的关键步骤: 首先,确保WebView已经启用了JavaScript。这是使用localStorage的前提条件,因为...

    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 ...

    移动端经验速递手册下载

    - **方法**: 通过`&lt;meta name="apple-mobile-web-app-status-bar-style" content="black"&gt;`等属性设置顶栏颜色。 **2.9 电话号码识别** - **方法**: 使用`tel:`协议链接电话号码,使其可点击拨打。 **2.10 邮箱...

    pdf在线预览,适用于pc, android, ios

    PDF在线预览技术是现代数字生活中非常常见的一种功能,它允许用户无需下载整个PDF文件就能在Web浏览器中查看文档内容。这种技术对于提高用户体验、节省网络带宽以及保护数据安全都具有重要意义。本文将深入探讨PDF...

    jsp文档 jsp资料 jsp重要知识点

    - 可以在响应头中设置`Cache-Control`和`Pragma`,禁止浏览器缓存页面。 13. **ErrorPage机制** - 有时需要通过`&lt;%@page errorPage="ErrPage.jsp"%&gt;`设置错误页面,但可能因浏览器差异导致效果不稳定。 14. **...

    Laravel开发-browscap-laravel

    在Laravel框架中,Browscap是一个非常有用的扩展,它帮助开发者识别和处理不同类型的Web浏览器,特别是那些老版本或者非标准的浏览器。这个扩展基于PHP的Browscap库,可以解析用户代理字符串,从而获取关于浏览器的...

    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 使用部署项目的...

    chrome windows 48-63 版本 离线安装包 32bit

    56版本增强了对Web App Manifest的支持,使得网站可以更像原生应用;同时开始要求HTTPS加密,以保护用户的数据安全。 57版本引入了新的CSS Paint API,允许开发者自定义渲染元素的方式;同时改进了推送通知的用户...

    63版本chrome,希望能帮到你

    7. **PWA(Progressive Web App)支持**:Chrome 63继续强化对渐进式Web应用的支持,允许PWA在桌面系统上安装并提供类似原生应用的体验。 8. **ES6新特性支持**:该版本进一步增强了对ECMAScript 2015+(ES6)新...

Global site tag (gtag.js) - Google Analytics