加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

发布swf更新版本时客户端Flash缓存问题

发布时间:2020-12-15 19:58:27 所属栏目:百科 来源:网络整理
导读:本文转载自?http://uh.9ria.com/space-63908-do-blog-id-4777.html ?? 用Flex开发应用,当更新了swf,部署到服务器后,最终用户还需要清空flash缓存后才能看到后台已经发布的最新版本。这里是一个解决方法: 其实这都是因为缓存的问题,大家都知道,Flash插件

本文转载自?http://uh.9ria.com/space-63908-do-blog-id-4777.html

?? 用Flex开发应用,当更新了swf,部署到服务器后,最终用户还需要清空flash缓存后才能看到后台已经发布的最新版本。这里是一个解决方法:

其实这都是因为缓存的问题,大家都知道,Flash插件也使用与HTML页面类似的方法缓存 swf文件,节省我们每次导入swf文件的时间,这是个很好的策略,但是对于我们有新版本swf文件发布的时候,这个缓存的机制就不怎么可爱了,swf中有没有什么特别的参数可以不缓存,而且对于Flex这样的胖客户端,不缓存对于用户体验也是不利的,这可如何是好?!??? 还好问题还是有解决的办法的,我们可以从缓存的根本下手,一般缓存都是基于URL的,也就是说对同一个URL的访问,有一个缓存的机制在这里,而对于不同的URL,也就必须读入新的swf重新缓存了。??? 具体解决方案如下:??? 1.在Flex的模板文件夹下面的index.template.html文件是最终生成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">??? 2.修改AC_OETags.js文件。在此文件中找到AC_FL_RunContent这个方法,这个方法会调用AC_GetArgs方法,AC_GetArgs方法的第二个参数默认是".swf"。将这个参数修改为".swf?ver=1.0"。问号后面的参数不是固定的,可以自己随便起,目的就是把url区分开,从而达到用户每次请求看到的都是最近版本的目的。??? 以上两步做好之后编译保存,如果以后swf文件被修改了,只需要修改服务器上的AC_OETags.js文件就可以了。修改方法按照第二步操作。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读