2014-09-04 171 views
2

我遇到一些问题,我在制作一个Titanium应用程序需要多长时间才能加载ScrollView。Titanium:ScrollView加载缓慢

钛SDK:3.3.0.GA

我决定运行测试,比较会多长时间,钛的应用 加载了类似的观点,以及原生内置版本(IOS)。

测试将1000个文本字段加载到ScrollView中。

对于本机构建的应用程序,在iPad mini上(基于3项试验)加载 需要大约0.850秒的时间。

对于钛构建的应用程序,花费大约59.3秒在相同的iPad mini上(基于3次试验)加载 。

显然,这是一个显着的差异。我的代码为 Titanium版本如下。有什么我失踪?一些选项, 正在使ScrollView如此缓慢? 59秒相比,0.850是相当重要的。

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(); 

注:我知道钛的ListView控件,但是,根据我的实验与它,它看起来不会 与我正在制作的应用程序太好,因为我需要互动之间包括我的各种组件以及根据这种互动改变它们的能力。 (例如,有一个开关,在关闭时, 会清除附近的文本字段,或者填充一些文本。在更新视图时,ListView似乎很慢,如果我错了,请告诉我)。

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

+0

在我的结尾花了0.966秒。我只是复制你的代码。 – Dragon 2014-09-04 04:14:07

+0

@Dragon你测试过什么设备?它是否在模拟器上,如果有,计算机的规格是什么?当我尝试在Mac mini上模拟iPhone Retina(3.5英寸)时,大约需要7.5秒 – Vafilor 2014-09-08 16:35:51

回答

0



在移动应用程序开发。你一直记得使用低内存或需要总是清除未使用的内存。

在这里,您一次添加大约1000个textView。这就是为什么。你的应用进展缓慢。

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

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

+0

感谢您的回应。你展示的这个例子非常有趣 - 这可能是我最终要做的。但是这并不能回答我的问题。使用本地代码时,1000个文本框需要大约0.850秒的时间才能加载,这非常快。使用SDK版本3.3.0GA,Titanium花费了大约59.3秒。我想知道是否有一些设置/选项可以使用,以便使用Titanium可以更快地加载1000个文本字段 - 使用本机代码更接近0.850,因为钛应该具有与iOS本机编写的代码相当的速度(至少,基于我读过的)。 – Vafilor 2014-09-08 19:47:14