文章来源: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,表示没变动。
相关推荐
9. **数据存储**:如果应用需要保存用户的登录状态或者其它数据,可以使用WebView的`saveState`和`restoreState`方法,或者利用Web Storage(localStorage和sessionStorage)。 10. **调试**:开发者可以启用远程...
6. **缓存机制**:为了提高用户体验,浏览器会使用本地缓存保存经常访问的网页数据。这包括HTTP缓存和App Cache,以及通过Service Worker实现的离线存储。 7. **性能优化**:考虑到移动设备的资源限制,Android...
4. **清除浏览器缓存和Cookie**: 清除可能干扰DevTools的存储数据。 5. **禁用扩展**: 进入`chrome://extensions/`页面,禁用所有扩展,然后逐个启用,找出引起问题的扩展。 6. **重置Chrome**: 如果上述方法无效,...
一个帮助包转换,当优化被禁用时防止缓存包内容 - 当调试被启用或 BundleTable.EnableOptimizations 为 false 时。 在 Nuget 上获取它! Install-Package System.Web.Optimization.HashCache 电梯演讲 当您在调试...
另外,优化WebView性能包括减少资源加载时间、缓存策略设置、禁用不必要的WebView特性等。 7. **程序运行**:描述提到部分代码可能需要调整才能运行,这可能是由于依赖库、API级别、权限设置或其他配置问题。调试...
7. **清理缓存**:清除浏览器缓存,因为旧的JavaScript文件可能仍然在缓存中,导致问题持续存在。 通过以上步骤,应该可以解决“__doPostBack”未定义的问题。如果问题仍然存在,可能需要进一步检查代码和项目设置...
【安卓封装网址APP源码】是一个专为Android平台设计的应用程序开发项目,它允许开发者将一个Web应用程序(通常由HTML、CSS和JavaScript组成)封装成一个原生的Android APK,以便用户可以在手机上像使用普通APP一样...
这通常是因为WebView的一些设置没有正确配置,导致localStorage功能被禁用或者无法正常工作。以下是一些解决这个问题的关键步骤: 首先,确保WebView已经启用了JavaScript。这是使用localStorage的前提条件,因为...
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处理...
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 ...
- **方法**: 通过`<meta name="apple-mobile-web-app-status-bar-style" content="black">`等属性设置顶栏颜色。 **2.9 电话号码识别** - **方法**: 使用`tel:`协议链接电话号码,使其可点击拨打。 **2.10 邮箱...
PDF在线预览技术是现代数字生活中非常常见的一种功能,它允许用户无需下载整个PDF文件就能在Web浏览器中查看文档内容。这种技术对于提高用户体验、节省网络带宽以及保护数据安全都具有重要意义。本文将深入探讨PDF...
- 可以在响应头中设置`Cache-Control`和`Pragma`,禁止浏览器缓存页面。 13. **ErrorPage机制** - 有时需要通过`<%@page errorPage="ErrPage.jsp"%>`设置错误页面,但可能因浏览器差异导致效果不稳定。 14. **...
在Laravel框架中,Browscap是一个非常有用的扩展,它帮助开发者识别和处理不同类型的Web浏览器,特别是那些老版本或者非标准的浏览器。这个扩展基于PHP的Browscap库,可以解析用户代理字符串,从而获取关于浏览器的...
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 使用部署项目的...
56版本增强了对Web App Manifest的支持,使得网站可以更像原生应用;同时开始要求HTTPS加密,以保护用户的数据安全。 57版本引入了新的CSS Paint API,允许开发者自定义渲染元素的方式;同时改进了推送通知的用户...
7. **PWA(Progressive Web App)支持**:Chrome 63继续强化对渐进式Web应用的支持,允许PWA在桌面系统上安装并提供类似原生应用的体验。 8. **ES6新特性支持**:该版本进一步增强了对ECMAScript 2015+(ES6)新...