Flex自定义RSL库缓存问题

时间:2013-02-13 08:54:53

标签: flex caching versioning rsl

我对如何在客户机上避免 RSL缓存感到有点困惑。 我有很多模块和一个加载它们的主要应用程序。几乎每个模块和应用程序本身都使用 RSL 库(这是我的常用库项目)。

以下是它的样子:

  • MyLib.swf RSL
  • MainApp.swf (将MyLib.swf用作 RSL
  • modules / Module1.swf (将MyLib.swf用作 RSL
  • modules / Module2.swf (将MyLib.swf用作 RSL
  • 模块/ Module3.swf

问题本身:

现在我正在更改MyLib中的代码并编译新版本的MyLib.swf。如何确保已加载旧版MyLib.swf的用户将获得新的 RSL ,而不是旧的缓存版本?

是否可以使用 RSL

进行类似操作
    var loader: Loader = new Loader();
    loader.load(new URLRequest("MyLib.swf?v1.2.3");

PS - 每次将MyLib.swf的名称更改为MyLib-v1.2.3.swf之类的东西都不是解决方案,因为我有类似于20个模块并且每个模块都编译所有模块时间我在MyLib中改变一些小问题并不是一个好的解决方案。

1 个答案:

答案 0 :(得分:0)

您可能根本不需要RSL。你的ApplicationDomain等级是什么?如果在加载模块时没有明确指定加载上下文,最终会得到each module in a new child ApplicationDomain

如果这是真的并且您不打算将旧模块与新应用程序及类似的东西一起使用,那么您可以通过执行以下操作从根本上优化整个过程:

  1. 将您用于MyLib.swf的所有课程编入MainApp.swf(快速简便)MyLib.swf加载到ApplicationDomain.currentDomain在加载第一个模块之前

  2. moduleX.swf中排除所有lib类(您可能已经这样做了)

  3. P.S。:About Flex RSLs.