我们有一个中型Flex 3.6应用程序,它包含大约20个不同的页面视图(通过单个懒惰的ViewStack管理),每个页面视图都有多个组件。大多数使用自定义渲染器。
所有模型数据在启动时加载,模型实例的更改通过绑定和/或集合更改事件进行传递。
一旦用户至少查看过一次页面,就会实例化所有页面视图并愉快地收听更新事件。
这实际上意味着每次模型实例更改时,所有感兴趣的视图都会收到该事件并计算派生数据或触发项目渲染器。
我已经在概念验证应用程序中测试并确认了这种行为。即使将列表设置为不可见,它仍会侦听集合更改事件并使任何受影响的渲染器无效。
你会做什么?
答案 0 :(得分:1)
为您的视图设置单例不是推荐的做事方式,因为它会将所有内容保存在内存中,这可能是巨大的。您应该在使用后适当地销毁所有视图。您应该对系统内存管理更加警惕。此外,您应该“停用”系统中当前未使用的部分。
我建议您从当前不需要的视图中删除任何内容,除非为某些用途“预加载”它们是合适的。您还应该查看分析器(如果有的话)以查看使用最多内存的内容并尝试修复使用过多内存的代码。