【问题标题】:Titanium: ScrollView loads slowlyTitanium:ScrollView 加载缓慢
【发布时间】: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


【解决方案1】:



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

在这里,您一次添加大约 1000 个 textView。这就是为什么。您的应用程序运行缓慢。

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

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

【讨论】:

  • 感谢您的回复。你展示的那个例子很有趣——这可能是我最终要做的。但这并不能回答我的问题。使用本机代码,加载 1000 个文本字段大约需要 0.850 秒,这非常快。使用 SDK 版本 3.3.0GA 时,Titanium 耗时约 59.3 秒。我想知道是否可以使用一些设置/选项,以便使用 Titanium 加载 1000 个文本字段更快 - 使用本机代码更接近 0.850,因为钛应该具有与为 iOS 原生编写的代码相当的速度(至少,基于我所读到的内容)。
猜你喜欢
  • 2018-07-06
  • 2018-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 2020-07-15
相关资源
最近更新 更多