html去缓存
‘壹’ 【浏览器缓存问题】HTML静态文件中,css和js可以添加版本号来刷新缓存,但是只是修改的文字了呢
给网址后面添加一个随机数(或者是任意的字符串)即可,比如原来的网址是这样的:
http....../.../1.htm
改为
http....../.../1.htm?1234
即可(注意问号不能省)。
浏览器是根据网址来缓存的,所以只要给网址接个尾巴,浏览器就会认为是新网址,就会从网上重新下载数据了。当然,如果下次再次改变了网页内容,这个尾巴就要再次修改。
给css和js添加所谓版本号其实也是同一个原理。这个版本号其实就是给css和js的网址接个尾巴而已。
这个也同样适用网页里面的图片、音乐等资源,事实上只要是http协议的元素都可以利用这个办法来避开缓存实时刷新。
‘贰’ 如何快速删除某页面的html缓存
一般的浏览器使用 ctrl+F5 就可以强制跳过缓存刷新页面,
如果是chrome浏览器:
一、可以使用ctrl+shift+R来强制跳过缓存刷新页面
二 、也可以使用 ctrl+shift+delete 来选择要删除的浏览记录
‘叁’ 如何在HTML文件里设置禁止浏览器缓存网页
就这句,对的,每次刷新都强制从服务器上重新载入网页:
meta http-equiv=Cache-Control content=no-cache />
你是不是想要网页的图片什么都不被保存到本地缓存目录?那个暂时不可能,目前所有浏览器都做不到。
‘肆’ 微信公众号html缓存处理
近期在发版验证时遇到一个问题,微信公众号登入后页面显示的是老的,强制刷新后,再退出重新登入,仍然显示的是老的页面;
经过一番查找得到了解决方案:
(1)公众号放的菜单地址后加 ?version=1.0.0 每次更新页面则更新菜单;
但是这样每次发版还得修改公众号的菜单,多一步很不方便;
于是和前端一块尝试寻找到另一中解决方案:
(2)前端在html的header中加入缓存策略
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<meta http-equiv="Cache" content="no-cache" />
这样就彻底解决了缓存问题;
但是注意,往往遇到此问题时,已经缓存了没有加缓存策略的html文件,需要清除掉缓存,加载新的带缓存策略的html文件,将来才会实时更新;但是也不能让用户每个都清理缓存啊;
于是就要配合第一种解决方法,在菜单链接后面加参数,这样用户侧会重新load新版本的html(微信菜单设置发布后,有将近10分钟的延时),这样配合使用就完美解决了我们的问题;
期间多次尝试发现,微信的缓存策略和页面地址的后缀参数相关,使用相同的后缀,在不设置缓存策略下,就能回到对应的版本,很强大,也很鸡肋
‘伍’ html5嵌入到app中,缓存如何去掉
Android的话可以使用webview缓存设置
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
这样webView就不会去加载缓存了,或者,每次退出时手动删除webView缓存,应用databases目录下有两个we
‘陆’ 解决网页或FLASH的缓存问题,你用的是什么方法解决的 谢谢了
在网页设计人员而言,当Flash文件更改后,在浏览器里观看效果时,必须清一下缓存才能浏览更新后的Flash文件,这次Flash文件制作初期,可能会要不断的进行修改以及调试,这样每次都要清缓存将是必较头痛的事。
使用以下的方法,使SWF文件强制不从浏览器读本地的缓存。或强制其SWF文件每次都去读取最新的媒体文件,确保每次都读取最新的SWF文件。
1:使用"Expires"标头 这是在HTML文件中告诉浏览器不读取本地缓存
在<head> </head> 中间加以下代码
<!-- BEGIN Insert -->
<META HTTP-EQUIV="Expires" CONTENT="Mon, 04 Dec 1999 21:29:02 GMT">
<!-- END Insert -->
这样的话,每次访问这个文件都会告诉浏览器其缓存版本过期,将重新从服务器端读取最新的文件
2:直接告诉浏览器根本就没有缓存
在包含SWF文件的HTML页面里的</body>插入:
<!-- BEGIN Insert -->
<HEAD>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</HEAD>
<!-- END Insert -->
没有Cache标头 不支持IE5版本,所以微软建议使用带Cacahe控制标头
3:当在HTML页面间连接跳转时
在点击超连接时将强制其从服务器上下载最新文档而不是从本地缓存中浏览
例如:<A HREF="stockPrices.htm?1">Current stock prices</A>
以上方法将阻止读取本地缓存
如何阻止从缓存中读取加载变量
问题:
当从外部数据源加载数据时,有时浏览器将数据存贮在本地缓存中,这样就导致在调用loadVariables方法加载数据时会从本地缓存中读取数据而代替从原始数据读取的信息。
解决:
为确保flash加载的是最新的变量,附加一个随机数变量,这样就可以原始档中加载最新的数据
例如:
方法一:
loadVariables("mypage.asp?nocache=" + random(65000), 0, "POST");
方法二:
loadVariables("mypage.asp?nocache=" + getTimer(), 0, "POST");
这样确保每次加载的数据是最新的。