当前位置:  开发笔记 > 前端 > 正文

防止在浏览器中使用Flex应用程序缓存(多个模块)

如何解决《防止在浏览器中使用Flex应用程序缓存(多个模块)》经验,为你挑选了0个好方法。

我有一个包含多个模块的Flex应用程序.

当我重新部署应用程序时,我发现模块(部署为单独的swf文件)被缓存在浏览器中并且没有加载新版本.

所以我尝试了?version=xxx在加载时添加到所有模块的古老技巧.该值xxx是一个全局参数,实际存储在主机html页面中:

var moduleSection:ModuleLoaderSection;
moduleSection = new ModuleLoaderSection();
moduleSection.visible = false;
moduleSection.moduleName = moduleName + "?version=" + MySite.masterVersion;

另外我需要添加?version=xxx到正在加载的主.swf.由于这是由HTML完成的,我必须通过修改我的AC_OETags.js文件来执行此操作,如下所示:

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf?mv=" + getMasterVersion(), "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

这一切都很好,效果很好.我很难相信Adobe还没有办法解决这个问题.鉴于Flex的目标是为业务设计模块化应用程序,我发现它特别令人惊讶.

其他人做什么?即使有人once per session选择了"浏览器缓存检查策略",我也需要确保我的应用程序正确重新加载.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有