【发布时间】: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