【问题标题】:Flex Mobile Project: ListFlex 移动项目:列表
【发布时间】:2011-12-13 14:49:59
【问题描述】:

我正在开发一个移动应用程序,我想在其中使用一个包含 400 行的列表。我从 Sqlite 数据库中获取数据。当我运行应用程序并单击列表按钮时,列表视图加载速度非常慢,大约需要 45 秒。我还尝试从应用程序内的 arraycollection 获取数据,但我遇到了同样的问题。这是正常的吗?对这个问题有什么想法或建议吗?

                    sqlStat.text="SELECT City FROM Cities";
                    sqlStat.execute();
                    dataArray=sqlStat.getResult().data;

                    appModel=AppModel.getInstance();

                    if(appModel.cities == null)
                    {
                        appModel.cities = new ArrayCollection();
                        var obj:Object;
                        for( var i:int=0; i<dataArray.length; i++ )
                        {
                            obj = new Object();
                            obj.Name = dataArray[i].City

                            appModel.cities.addItem(obj);

                        }
                    myList.dataProvider=appModel.cities;    
                    }

【问题讨论】:

  • 显示一些代码!另外你知道瓶颈在哪里吗?是在加载数据吗?还是在渲染列表?您使用的是哪个版本的 Flex?我注意到 Flex 4.6 / AIR 3.1 相对于 Flex 4.5 / AIR 2.6 的性能有了显着提升
  • sqlStat.text="从城市中选择城市"; sqlStat.execute(); dataArray=sqlStat.getResult().data; appModel=AppModel.getInstance(); if(appModel.cities == null) { appModel.cities = new ArrayCollection();变量对象:对象; for( var i:int=0; i
  • 这是我的 sql 代码从数据库中获取 Cities 并将它们添加到我在 appModel 类中定义的 arraycollection 中。然后我为我的列表组件定义了数据提供者。这适用于我的视图的 creationComplete 事件。加载视图时,大约需要 45 秒。我也在使用 Flash Builder 4.6 和 AIR 3.1
  • 如果我减少数据,例如50,加载时间也减少了。
  • 不要在 cmets 中发布代码;很难阅读。编辑您的问题并在那里添加代码。确保“突出显示”它并按下编辑器中的大括号按钮将其格式化为代码。

标签: list apache-flex mobile


【解决方案1】:

OP 写道:

我解决了我的问题。 ListForm 组件导致渲染器问题。我使用 List 组件而不是那个组件,并在我的班级中为我的列表创建了 arrayCollection dataprovider。它比以前运行得更快。

猜你喜欢
  • 2011-10-07
  • 1970-01-01
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多