我有一个带有多个模块的Flex应用程序。在浏览器中防止Flex应用程序缓存(多个模块)
当我重新部署应用程序时,我发现模块(作为单独的swf文件部署)正在缓存在浏览器中,并且新版本未加载。
所以我尝试了所有模块加载时加入?version=xxx
的古老技巧。价值xxx
是实际存储在主机html页面全局参数:
var moduleSection:ModuleLoaderSection;
moduleSection = new ModuleLoaderSection();
moduleSection.visible = false;
moduleSection.moduleName = moduleName + "?version=" + MySite.masterVersion;
此外,我需要添加?version=xxx
到已加载的主要瑞士法郎。由于这是由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
作为其“浏览器缓存检查策略”,我也需要确保我的应用程序能够正确地重新加载。
正确的,但要找到一个可行的解决方案的心不是他们的控制。主要是我想确保我不会错过一些内置功能并重新发明轮子。我特别不想要一个随机数,因为我希望应用程序在可能的情况下被缓存 – 2008-11-19 19:33:48