Flex swf 升级后,客户端不需要清空缓存即可查看最新版本的使用
我们在用Flex开发应用的时候,每次修改了swf,上传到服务器后,测试都需要清空缓存。这样很麻烦,另外如果以后版本更新了,但是用户没有清空缓存的话仍然看不到最新版本。所以在这里说一下解决方案。 其实这都是因为缓存的问题,大家都知道,Flash插件也使用与HTML页面类似的方法缓存swf文件,节省我们每次导入swf文件的时间,这是个很好的策略,但是对于我们有新版本swf文件发布的时候,这个缓存的机制就不怎么可爱了,swf中?有没有什么特别的参数可以不缓存,而且对于Flex这样的胖客户端,不缓存对于用户体验也是不利的,这可如何是好?! 还好问题还是有解决的办法的,我们可以从缓存的根本下手,一般缓存都是基于URL的,也就是说对同一个URL的访问,有一个缓存的机制在这里,而对于不同的URL,也就必须读入新的swf重新缓存了。 具体解决方案如下: 1、将嵌入swf的html文件设置为不缓存 修改应用访问的html文件,将这个页面的缓存方式设置为“不缓存”(因为html页面的数据不大,所以每次都读取Server中的内容是可以容忍的)。在此文件的<head></head>之间加上如下代码:
注意:<head></head>之间原有的代码不要修改!,如果代码中已经存在上边的代码就无需再增加了。 2、在嵌入的swf的url后边添加版本号 找到应用的html中嵌入swf的js代码块,实际嵌入swf的js函数为swfobject.embedSWF(url,?.....),第一个参数为被嵌入swf的url路径,在每次swf升级时,在路径后边加上版本控制参数即可,即将参数设置为“xxx.swf?v=2014012801”,具体的版本号根据项目约定设置,案例代码的截图如下: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |