我开始使用Sencha Touch 2,想知道它是否处理资源清理。
特别是:
假设我们有一堆由url重定向触发的控制器。这些控制器实例会被缓存吗?还是每次需要调用控制器上的方法时都会创建新的实例?
对于视图也是一样。Sencha是否缓存视图,还是每次需要重新渲染视图时都会重新创建它们。视图在何时被销毁(如果被销毁)?
我能否对Sencha如何处理这些事情进行控制?
我开始使用Sencha Touch 2,想知道它是否处理资源清理。
特别是:
假设我们有一堆由url重定向触发的控制器。这些控制器实例会被缓存吗?还是每次需要调用控制器上的方法时都会创建新的实例?
对于视图也是一样。Sencha是否缓存视图,还是每次需要重新渲染视图时都会重新创建它们。视图在何时被销毁(如果被销毁)?
我能否对Sencha如何处理这些事情进行控制?
回答您的问题:
每个控制器只创建一个实例,由Sencha处理控制器实例,因此我认为您不需要担心控制器实例。
清理应该由View来完成,因为视图的数量和复杂性与性能密切相关。
Sencha并没有专门清理其资源 - 开发人员必须显式地处理DOM清理(除了JavaScript自己的垃圾回收机制)。 因此,开发人员需要决定何时创建视图,是否将其保留在DOM中以供将来使用或在其隐藏后立即销毁它。 让我举几个例子:
A.
假设用户单击按钮,打开显示页面信息的INFO弹出窗口。 用户阅读完信息后,关闭弹出窗口。 现在,从用户的角度来看,用户重新打开弹出窗口的机会可能非常小。 因此,最好在用户关闭弹出窗口时立即将其从DOM中删除。 不管怎样,如果用户想要重新打开它,请重新创建弹出窗口并显示它。
B.
同样地,假设用户在登录页面登录到应用程序。 用户在应用程序中几乎不会返回到登录页面。 因此,一旦隐藏了登录View实例,请销毁它。
这些是一些需要显式删除视图的情况。以下是一些有关使用Sencha进行内存优化的参考资料:
b)http://www.slideshare.net/senchainc/optimizing-performance