Titanium:ScrollView加载缓慢

时间:2014-09-04 00:52:19

标签: ios performance titanium scrollview appcelerator

我对我正在制作的Titanium应用程序有多长时间存在问题 需要加载ScrollView。

Titanium 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似乎在更新这样的视图时非常慢。如果我错了,请告诉我。)

进一步注意:我尝试在钛sdk 3.2.3上运行相同的测试,在相同的iPad mini上花了大约6秒而不是59秒。但是,在我正在制作的应用程序中,scrollview实际上需要更长时间才能加载。 感谢

1 个答案:

答案 0 :(得分:0)



在移动应用程序开发。您始终记得使用低内存或需要始终清除未使用的内存。

在这里,您一次添加大约1000个textView。这就是原因。你的应用程序进展缓慢

请尝试此参考。在这个例子中。滚动表格视图时,它会添加下一行。这将根据您的显示逐个添加。

示例: - https://gist.github.com/mschmulen/805283