apache-flex - 防止浏览器中的 Flex 应用程序缓存(多个模块)

标签 apache-flex caching

我有一个包含多个模块的 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);
}

这一切都很好,效果很好。我很难相信 Adob​​e 还没有办法处理这个问题。鉴于 Flex 的目标是为商业设计模块化应用程序,我觉得这特别令人惊讶。

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

最佳答案

我遇到了类似的问题,最后将 SWF 文件放在名为内部版本号的子目录中。这意味着 SWF 文件的 URL 每次都指向不同的位置。

理想情况下,这应该由平台来满足,但那里没有乐趣。但这对我们来说非常有效,并且很容易与 Hudson 集成到我们的自动化构建中 - 到目前为止没有任何提示。

关于apache-flex - 防止浏览器中的 Flex 应用程序缓存(多个模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/300757/

相关文章:

apache-flex - 请比较 QTP、RIATest、Selenium 进行 Flex 应用程序自动化测试

xml - AS3 按子值从 XML 中删除子节点

apache-flex - 处理客户事件的flexunit和Async.asyncHandler()

caching - 是否可以知道高速缓存未命中的地址?

http - 要求浏览器尽可能积极地缓存

java - Flex::<mx:transitions> 在我的 Flex 项目中无法正常工作?

apache-flex - Flash Builder 4 - Flash Player 无法连接到调试器

javascript - 如何确定从缓存中提供文件?

java - 从 JPA/Hibernate/EclipseLink 替换查询缓存中的单个实体?

c# - OutputCache 行为异常