彻底解决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>
以上方法将阻止读取本地缓存
4:如何阻止从缓存中读取加载变量
问题:
当从外部数据源加载数据时,有时浏览器将数据存贮在本地缓存中,这样就导致
在调用loadVariables方法加载数据时会从本地缓存中读取数据而代替从原始数据源
读取的信息。
解决:
为确保flash加载的是最新的变量,附加一个随机数变量,这样就可以原始档中加载最新的数据
例如:
方法一:
loadVariables("mypage.asp?nocache=" + random(65000), 0, "POST";
方法二:
loadVariables("mypage.asp?nocache=" + getTimer(), 0, "POST";
这样确保每次加载的数据是最新的.
[补充]
然而在实践中,我取发现在页面含有SWF文件时使用MM提供的方法,有时不是很灵验。
经过不断的测试,我发现使用一下的方法可以百分之百的解决flash读取本地缓存的问题
首先我们来看看页面中包含flash文件的代码:
<object classid="clsid27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="waizi.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="waizi.swf" quality="high" bgcolor="#ffffff" width="550" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
其红色的部分就是代表你要调用的flash 资源。我们可以简单的在其后附加一个变量就可以强制页面每次都从服务器端调用最新的SWF文件。
例如:xxxx.swf?rand=12334567
方法一: 如果是HTML页面,其不能自动改变变量的值,所以当你的SWF文件修改后上传服务器,你只要手工修改rand变量后面的数值就可以防止页面读取本地的SWF文件信息。
方法二: 如果你的页面是asp,php动态页面,则可以通过脚本来实现其动态修改变量值。
例如在asp页面中,使用vbscript产生一个随机数
<%
dim num
Randomize
num=Int((1000000*Rnd)+1)
%>
然后在你那一堆置入SWF文件的代码中,找到SWF文件名,并修改其为:
<param name=movie value="****.swf?rand=<%=num%>">
embed src="****.swf?rand=<%=num%>"
记住是两个地方,因为其适用于不同的浏览器。
如果使用javascript可以这样:
<script language="JavaScript">
function Rand(){
var Num=Math.floor(Math.random()*1000000);
document.write(Num);
}
</script>
然后在调用flash代码的地方修改为:
****.swf?rand=<script language="JavaScript">getRand();</script>
记得是一般要改两个地方。一个<object>用于IE的 一个<embed>用于非IE浏览器的
现在想想有了问题,第一个寻找答案的地方就是去adobe网站上查询。
彻底解决swf浏览器的缓存问题相关推荐
- 解决chrome浏览器图标缓存问题
一.先解决图标缓存问题 尝试解决 清空浏览器缓存,无效 直接访问图片地址,无效 删除本地favicon缓存文件,有效 C:\Users\xxxxxx\AppData\Local\Google\Chro ...
- vue项目解决苹果浏览器的缓存功能
在开发vue项目的时候,测试人员给我提了一个bug:"苹果自带浏览器登录后杀死浏览器重新进入后,页面刷新所有数据不显示". 我仔细的回顾了一下代码,感觉我的代码没有什么问题,问测试 ...
- Vue、React打包文件放在服务器,浏览器存在缓存问题的解决
Vue.React打包文件放在服务器,浏览器存在缓存问题的解决 参考文章: (1)Vue.React打包文件放在服务器,浏览器存在缓存问题的解决 (2)https://www.cnblogs.com/ ...
- Ajax解决浏览器的缓存问题
Ajax解决浏览器的缓存问题 参考文章: (1)Ajax解决浏览器的缓存问题 (2)https://www.cnblogs.com/chenssy/archive/2013/05/21/3090026 ...
- ajax浏览器操作发生异常,解决IE浏览器缓存导致AJAX请求数据异常
IE10浏览器会把AJAX请求的数据都缓存下来,然后每次想去刷新数据时发现数据都是一样的,于是导致数据显示异常. 解决方法: 在页面 标签里,加上以下声明: 保存后,刷新页面,重新访问即可. 说明:最 ...
- 解决浏览器图片缓存问题
问题: 项目中有生成二维码,每次操作后生成新的二维码图片,地址不变,但是在浏览器中总是显示前几次生成的二维码,实际上新的二维码已重新生成,只是浏览器把图片缓存了所以一直都是第一次读取时的二维码. 解决 ...
- Ajax学习日志(七)—— 解决低版本IE浏览器的缓存问题
Ajax入门(七) 一.解决低版本IE浏览器的缓存问题 1.1) 低版本IE浏览器的缓存问题及解决方案 1.2)需了解的知识 1.3)在app.js同目录下新建一个txt文件 1.4)在app.js创 ...
- 解决ie浏览器发送ajax请求的缓存问题
由于ie浏览器的缓存问题,我们使用ie浏览器发送ajax请求,修改服务器js代码后,再次发送该ajax请求,ie浏览器会从缓存中查找该请求的数据,这样会导致ie显示的数据并不是最新的. 1.服务器代码 ...
- 解决微信浏览器缓存问题
微信浏览器处理缓存方式: 1.头部处理缓存信息. <meta http-equiv="Cache-Control" content="no-cache, no-st ...
最新文章
- 如何参与一个顶级开源项目
- python语言的数据类型有哪些_Python语言有哪些数据类型
- 让你费解的函数原型:Linux下的signa函数
- linux启动和关闭
- OpenCV3.0或OpenCV3.1的SVM操作
- 关于RGB屏调试的一些知识(转)
- 【BZOJ - 1059】矩阵游戏(二分图匹配,建图,最小边覆盖)
- oss图片跨域问题_图片存储解决方案-阿里云对象存储
- matlab传函零极点形式,2013实验一 MATLAB 中控制系统模型的建立与仿真
- sql server 2008 r2安装图解教程
- linux面试题线程与进程,​一道面试题:说说进程和线程的区别
- 简明 python 教程 书_Python简明教程是不是这本书(简明python教程书本)
- 【好书推荐】写Web必须知道的安全知识 | 《白帽子讲Web安全》
- LABS1000-01空盒气压计检定系统
- 计算机编码与解码编码表
- 光源类型-CIE标准光源
- 陪伴难道是最长情的告白吗
- java发展前景选兄弟连_兄弟连:Java程序员未来应该如何发展
- 吉时利Keithley软件2600系列2635B|2636B|2651A|2657A NS-SourceMeter源表软件
- 【微信小程序】照片换底(免费拍摄多种类型证件照、剪裁、换底、压缩)