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

How to improve performance for Sencha Touch 2.x application

本文关键字:应用程序 性能 何提高 Sencha Touch      更新时间:2023-09-26

我一直在为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. 手动应用循环并添加要存储的记录

但在这两方面,应用程序都非常慢。

我知道JavaScript可能有1000条记录是巨大的。但我想明白,如果我能在任何方面做得更好的话。

我已经做了眼睛和搜索堆栈溢出(粘贴链接下面),但是,没有发现任何令人满意的。

PhoneGap 1.4包装Sencha Touch 2.X-性能如何?

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

请帮助我了解我是否可以在任何方面改进它。

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

加载缓慢吗

实现分页肯定会有所帮助,我无法想象1k记录的json返回是即时的。

寻呼是你的朋友。

在浏览器中记录加载时间,并处理正在杀死你的内容。(这通常可以修复我在该领域遇到的99%的问题)

是不是很懒

重新伸缩提高了速度,但同样,在JS中实际处理范围等往往是过度优化的(ExtJs在其API中有足够多的奇怪比特,这是基于API的,我认为这是一场失败的战斗)。

如果你去看性能视频,他们会给出关于动态创建组件、销毁任何不活动的组件等的建议,但这(至少对我来说)是一件内存管理的事情。

TL:DR:

根据我个人的经验,我有40x10的网格滞后于sencha触摸,我想1000x1的网格会让你急刹车。

在服务器端管理它,您的担忧就会消失:)