【发布时间】:2014-09-04 00:52:19
【问题描述】:
我在制作 Titanium 应用程序时遇到了一些问题 需要加载一个 ScrollView。
钛 SDK:3.3.0.GA
我决定进行一个测试,比较钛应用程序需要多长时间 加载类似的视图和原生构建版本 (iOS)。
测试将 1000 个文本字段加载到 ScrollView 中。
对于原生构建的应用,加载大约需要 0.850 秒 在 iPad mini 上(基于 3 次试验)。
对于钛金属构建的应用,加载时间约为 59.3 秒 在同一个 iPad mini 上(基于 3 次试验)。
显然,这是一个显着的差异。我的代码 钛构建如下。有什么我想念的吗?一些选项 让 ScrollView 这么慢? 与 0.850 相比,59 秒相当显着。
index.xml
<Alloy>
<Window class="container" >
<ScrollView id="scrollView" layout="vertical"></ScrollView>
</Window>
</Alloy>
index.tss
".container": {
backgroundColor:"white"
}
index.js
var startTime = new Date();
startTime = startTime.getTime() / 1000;
$.index.addEventListener('postlayout', calculateTimeToLoad);
loadThousandTextFields();
function calculateTimeToLoad() {
$.index.removeEventListener('postlayout',calculateTimeToLoad);
var endTime = new Date();
endTime = endTime.getTime() / 1000.0;
Ti.API.info("Total time taken:" + (endTime - startTime) + " seconds");
}
function loadThousandTextFields() {
for(var i = 0; i < 1000; i++) {
$.scrollView.add(Ti.UI.createTextField({
hintText: "Hint text"
}));
}
}
$.index.open();
注意:我知道 Titanium 的 ListView,但是,根据我对它的实验,它看起来不会 与我正在制作的应用程序配合得很好,因为我需要各种组件之间的交互以及改变的能力 他们基于这种互动。 (例如,有一个开关,在关闭时,会 清除附近的文本字段,或用一些文本填充它。 ListViews 在更新这样的视图方面似乎很慢。如果我错了,请告诉我)。
进一步说明:我尝试在 Titan sdk 3.2.3 上运行相同的测试,在同一个 iPad mini 上花费了大约 6 秒而不是 59 秒。但是,在我正在制作的应用程序中,滚动视图实际上需要更长的时间才能加载。 谢谢
【问题讨论】:
-
我最后花了 0.966 秒。我刚刚复制了你的代码。
-
@Dragon 你在什么设备上测试过它?是在模拟器上,如果是的话,你的电脑的规格是什么?当我尝试在 mac-mini 上模拟 iPhone Retina(3.5 英寸)时,大约需要 7.5 秒
标签: ios performance titanium scrollview appcelerator