2014-09-04 218 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