7

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

尤其是:

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

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

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

4

1 回答 1

11

为了回答您的问题,

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

  2. 清理实际上应该使用视图来完成,因为视图的数量和它们的复杂性与性能密切相关。

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

一个。

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

B.

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

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

a) Sencha Touch:优化内存使用

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

于 2012-08-27T11:51:07.387 回答