Sencha Touch 2如何清理资源

Posted

技术标签:

【中文标题】Sencha Touch 2如何清理资源【英文标题】:How does Sencha Touch 2 cleanup resources 【发布时间】:2012-08-22 11:39:47 【问题描述】:

我开始使用 Sencha Touch 2,我只是想知道它(如果有的话)如何处理资源清理。

特别是:

假设我们有一堆由 url 重定向触发的控制器。这些 Controller 实例是否会被缓存,或者 Sencha 是否会在每次需要调用控制器上的方法时创建新实例

视图也一样。 sencha 是缓存视图还是在每次需要再次渲染它们时重新创建它们。视图究竟是什么时候被销毁的(如果有的话)?

我可以控制煎茶如何处理这些事情吗?

【问题讨论】:

【参考方案1】:

回答你的问题,

    Sencha 仅创建每个控制器的一个实例。所以,我真的认为你不需要担心控制器实例。让 Sencha 来处理。

    实际上应该对视图进行清理,因为视图的数量和复杂度与性能密切相关。

Sencha 不会专门清理其资源 - 开发人员必须明确地处理 DOM 清理(除了 javascript 自己的垃圾收集机制)。因此,开发人员需要决定何时创建视图,是将其保存在 DOM 中以供将来使用,还是在隐藏后立即销毁它。让我举几个例子:

答。

假设点击一个按钮,用户打开一个 INFO 弹出窗口,它显示 有关页面的一些信息。一旦用户阅读了信息,他 关闭弹出窗口。现在,从用户的角度来看,可能有一个非常 用户重新打开弹出窗口的可能性很小。所以,最好是 如果弹出窗口在用户关闭后立即从 DOM 中删除。 无论如何,如果用户想重新打开它,请重新创建弹出窗口并显示 它。

B.

同样假设用户在登录页面并登录 应用。用户在登录页面内几乎不会返回登录页面 应用程序。因此,一旦隐藏登录视图实例,就销毁它。

因此,这些是可以在需要时显式删除视图的一些场景。以下是一些关于使用 Sencha 进行内存优化的参考资料:

a)Sencha Touch: Optimizing Memory Usage

b)http://www.slideshare.net/senchainc/optimizing-performance

【讨论】:

很好的答案。仍然不敢相信我首先必须开始赏金才能击败soneone :-) 我注意到有一个名为deftjs.org 的扩展程序处理这些事情看起来有点不同 :) 很高兴知道它有帮助。如果我看到了,我会早点回答的!

以上是关于Sencha Touch 2如何清理资源的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sencha Touch 2 模型中存储日期

Sencha Touch 2:数据集成或如何在sencha和javascript之间共享动态信息

如何在 Sencha Touch 2 中使用 Sqlite

Sencha Touch 2 如何获取响应标头

如何在 Sencha-Touch2.0 的地图中获取当前位置的标记

Sencha touch 2 - 如何创建动态轮播?