我们使用XML文件作为应用程序中几个参数的外部配置文件(包括UI组件的默认值和某些服务层对象的属性值)。我们的想法是能够在Flex应用程序初始化其任何组件之前加载XML配置文件。这是至关重要的,因为XML加载是在flex中同步处理的,这可能会导致应用程序中的竞争条件。
例如:配置文件包含用于从服务器获取数据的Web服务的端点URL。 URL位于XML中,因为我们希望允许用户根据其环境更改端点URL。现在因为只有在完全加载XML之后才检索端点URL,所以某些应用程序的组件可能在使用正确的端点初始化之前调用此Web服务上的操作。 简单的解决方案是暂停应用程序的初始化,直到加载程序调度完成事件为止。但似乎这种解决方案远非微不足道。我还没有找到一个允许我在应用程序中的任何其他对象之前加载XML的解决方案。
有人可以就此事提出建议或评论吗?
此致 沙哈尔
答案 0 :(得分:0)
您不能进行同步操作,在这种情况下,我会选择以下方法:在您的应用程序调度后,创建完成事件加载xml。需要从xml加载数据的所有用户交互都被禁用,并且尚未启动所有其他后台操作。
加载xml后,调度一个事件来发出信号。事件处理程序应创建远程对象,Web服务等,启用UI操作或运行与UI交互无关的I / O操作。