0

我一直在为 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 来减少。这个说法有效吗?

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

4

1 回答 1

1

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

它加载缓慢吗?

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

寻呼是你的朋友。

在您的浏览器中分析加载时间,并玩弄什么让您丧命。(这通常可以解决我在这方面遇到的 99% 的问题)

是不是很迟钝?

Rescoping 提高了速度,但同样,考虑在 JS 中实际使用范围等往往会过度优化(ExtJs 在其 API 中有足够多的奇怪位,这是基于此的,我认为这是一场失败的战斗)。

如果您去看有关性能的视频,他们会提供有关动态创建的组件,销毁任何不活动的东西等的建议,但这(至少对我而言)是内存管理的事情。

TL:博士:

以我个人的经验,我有 40x10 的网格在 sencha 触摸中滞后,我想 1000x1 的网格会让你停下来。

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

于 2012-08-24T17:00:59.137 回答