Sencha touch - 使用大型数据集对性能的意见

时间:2014-06-20 05:52:53

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

目前正在使用sencha touch房地产应用程序列出属性。 我们有一个包含约500条记录的数据集 根据一个(可能多个)属性,通过用户输入过滤这些记录的列表。 按精确属性筛选列表,然后通过用户输入再次筛选 按属性对列表进行分组

目前已实施list-Paging插件并在每个请求中加载20条记录。但我的客户感觉就像在一个请求中加载所有500条记录并将这些数据缓存在本地存储中。只有在记录发生任何变化时,它才会刷新数据。

我的问题是,在单个请求中加载500条记录是否可行? sencha touch可以在其商店中处理500条记录吗? 这样做会有任何性能问题吗?

这是我的一条记录json

 {
            "id": 0,
            "ReoAddress": "*testproperty,  N,  42342, 3423, thrissur, AR, 3423432",
            "ReoId": "407",
            "AgentAssigned": "1",
            "IsViewed": "1",
            "PPView": 2,
            "RecordCount": 368,
            "items": [
                {
                    "leaf": true,
                    "ReoId": "407",
                    "ReoImageUrl": "http://192.168.3.6:92/abraham/CRM_API/GetPropertyPhoto.ashx?ReoImgPath=G9/C+sKDbWKF/OCw22r5QN2UCNW1BwGW",
                    "ClientName": "Bank of America",
                    "ListingAgentContactName": "",
                    "MLSSNumber": "10",
                    "MLSStatus": "Sold",
                    "LockboxType": "",
                    "LockboxCode": "",
                    "NumberOfBedRooms": "0",
                    "NumberOfBathRooms": "0.00",
                    "GarageSpace": "0",
                    "IntSqFt": "0",
                    "CurrentListingPrice": "",
                    "PPView": 2
                }
            ]
        }

请指导我正确的方向。谢谢

1 个答案:

答案 0 :(得分:1)

将数据存储在javascript内存中根本不太可能成为问题。我在我的应用程序中一次将数千条记录存储在内存中 - 没问题。

问题在于,如果您的商店有数百条记录,那么这些记录将同时存在于DOM中。 DOM中的500个数据视图项将导致巨大的性能问题。一个无限的列表也会为你解决这个问题。

HTML5完全与DOM性能有关。 DOM元素越少,性能越好。因此,请注意Sencha Touch在数据视图/列表中表示商店的背景中所做的事情。

您可以在我撰写的有关Sencha Touch数据结构的博客文章中找到一些进一步的提示:http://senchatouchdev.com/wordpress/2014/01/03/an-overview-of-sencha-touch-2s-data-system/