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

来源:互联网 发布:淘宝手办店推荐 编辑:程序博客网 时间:2024/06/01 08:05

我们在用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”,具体的版本号根据项目约定设置,案例代码的截图如下:

0 0
原创粉丝点击