如何提高Sencha Touch 2.x应用程序的性能

时间:2012-08-24 12:07:42

标签: javascript html5 cordova sencha-touch sencha-touch-2

我一直在为Android和iPhone研究Sencha Touch2应用程序开发。虽然我不是移动新手,但我仍在学习Sencha Touch和ExtJS。

我的应用程序在每个屏幕上都有一些带有ListView的屏幕。我的应用程序遵循Sencha MVC模式。它使用卡片布局,放置在视口上,并在其上添加不同的表单/组件。一个AJAX请求使数据可用于所有屏幕。作为回复,我获得了1000条记录的JSON响应。示例Json响应如下。

[{
    "key1": "Similarities between Operations and Projects",
    "value1": "Some Value"},
{
    "key2": "Differences between Operations and Project",
    "value2": "Some Value"},
.... {}, {}, {}

]

我必须解析JSON并更新商店,以便我的列表显示所有内容。我尝试了两种方法

  1. 直接使用代理商店
  2. 手动应用循环并将记录添加到商店
  3. 但是这两种应用程序都很慢。

    我理解JavaScript可能会有1000条记录很大。但我想明白,如果我能做到更好的话。

    我已经进行了扫视并搜索了堆栈溢出(下面粘贴的链接),但是,没有发现任何令人满意的结果。

    PhoneGap 1.4 wrapping Sencha Touch 2.X - What about performance?

    我的想法: 目前,所有记录/ JSON响应对象都存储为全局对象。我可以通过将其存储到SessionStore或LocalStore来减少。这个陈述有效吗?

    请帮助我理解我是否可以改进它。

1 个答案:

答案 0 :(得分:1)

基于如何应用程序缓慢的复杂性,有点难以回答这个问题。

加载速度慢吗?

实现分页肯定会有所帮助,我无法想象1k记录的json返回是一个瞬间的事情。

寻呼是你的朋友。

在浏览器中描述加载时间,并使用什么杀死你。 (这通常解决了我在该领域99%的问题)

是否有滞后性?

Rescoping提高了速度,但再一次,看看在JS中实际玩游戏范围等往往是过度优化(ExtJs在其API中有足够的奇怪位,这是基于,我想这是一场失败的战斗)。

如果你去看vids on performance,他们就动态创建的组件给出建议,销毁任何不活跃的东西等等,但这对我来说至少是一个内存管理的东西。

<强> TL:DR:

根据个人经验,我有40x10网格落后于sencha touch,我想1000x1网格会让你嘎然而止。

在服务器端进行管理,您的后顾之忧将消失:)