Flex swf 升级后,客户端不需要清空缓存即可查看最新版本的使用说明

我们在用Flex开发应用的时候,每次修改swf上传到服务器后,测试都需要清空缓存。这样很麻烦,另外如果以后版本更新了,但是用户没有清空缓存的话仍然看不到最新版本。所以在这里说一下解决方案。

其实这都是因为缓存的问题,大家都知道,Flash插件也使用与HTML页面类似的方法缓存swf文件,节省我们每次导入swf文件的时间,这是个很好的策略,但是对于我们有新版本swf文件发布的时候,这个缓存的机制就不怎么可爱了,swf中 有没有什么特别的参数可以不缓存,而且对于Flex这样的胖客户端,不缓存对于用户体验也是不利的,这可如何是好?!

还好问题还是有解决的办法的,我们可以从缓存的根本下手,一般缓存都是基于URL的,也就是说对同一个URL的访问,有一个缓存的机制在这里,而对于不同的URL,也就必须读入新的swf重新缓存了

具体解决方案如下:

1、将嵌入swfhtml文件设置为不缓存

修改应用访问的html文件,将这个页面的缓存方式设置为不缓存(因为html页面的数据不大,所以每次都读取Server中的内容是可以容忍的)。在此文件<head></head>之间加上如下代码

<Meta HTTP-EQUIV="pragma" CONTENT="no-cache">
<Meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<Meta HTTP-EQUIV="expires" CONTENT="0">

注意:<head></head>之间原有的代码不要修改,如果代码中已经存在上边的代码就无需再增加了。

2、在嵌入的swfurl后边添加版本号

找到应用的html中嵌入swfjs代码块,实际嵌入swfjs函数swfobject.embedSWF(url, .....),第一个参数为被嵌入swfurl路径,在每次swf升级时,在路径后边加上版本控制参数即可,即将参数设置为“xxx.swf?v=2014012801”,具体的版本号根据项目约定设置,案例代码的截图如下:

相关文章

一:display:flex布局display:flex是一种布局方式。它即可以...
1. flex设置元素垂直居中对齐在之前的一篇文章中记载过如何...
移动端开发知识点pc端软件和移动端apppc端软件是什么,有哪些...
最近挺忙的,准备考试,还有其他的事,没时间研究东西,快周...
display:flex;把容器设置为弹性盒模型(设置为弹性盒模型之后...
我在网页上运行了一个Flex应用程序,我想使用Command←组合键...