Sencha Touch 2 内存管理选项

Posted

技术标签:

【中文标题】Sencha Touch 2 内存管理选项【英文标题】:Sencha Touch 2 Memory Management Options 【发布时间】:2012-05-01 11:51:12 【问题描述】:

我正在研究如何在 Sencha Touch 2 中节省内存。我看到了两个选项,如下所述。

我想就这两个选项之间的内存消耗差异获得建议,并想知道我是否遗漏了什么。

节省内存的选项

    删除和销毁

    从容器中移除未使用的组件,并销毁它们。当再次需要它们时,重新创建它们。

    优势

    容器引用的“autoCreate”选项和容器配置的“autoDestroy”选项可以极大地帮助这种方法。

    缺点

    要像销毁前一样重新创建视图,您需要确保您希望重新创建的每条重要信息(例如,列表中的滚动位置、地图中的地图中心)都保持在其他地方的状态。

    删除

    从容器中移除未使用的组件而不破坏它们。当再次需要它们时,将它们重新附加到容器中。

    优势

      无需将与 GUI 相关的信息作为状态保存在某处。 组件即使没有出现在 DOM 中也可以更新。

    缺点

      组件已从 DOM 中清除,但 Sencha 对象仍保留在内存中 您需要将分离的组件保存在某处,并确保在创建新组件之前检查并附加现有组件

【问题讨论】:

【参考方案1】:

我也在 Sencha 论坛上发布了这个:http://www.sencha.com/forum/showthread.php?200314-Memory-Management-Options

我得到了以下相当笼统的答案:

如果您删除组件但不销毁它,您可以最小化 DOM 大小,但当然您仍然在设备内存中拥有该组件。这样做的好处是,由于 DOM 大小减小了,您可以获得更好的性能,并且 DOM 大小将比内存中的某些组件产生更大的影响。

【讨论】:

以上是关于Sencha Touch 2 内存管理选项的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch 2 - 选项卡式面板中的轮播

使用 Sencha touch 2 在 UIWebView 中选项卡切换太慢

Sencha Touch 2:在选项卡面板中创建嵌套列表

在 Sencha Touch 2 中更改选项卡时发出 Ajax 请求

选项卡式工具栏内的 Sencha Touch List 组件

Sencha Touch 2 或 DHTMLX Touch