Flash 缓存问题的解决
时间:2011-03-15 来源:夜真寒
原文是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");
这样确保每次加载的数据是最新的.