我遇到一些問題,我在製作一個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.966秒。我只是複製你的代碼。 – Dragon 2014-09-04 04:14:07
@Dragon你測試過什麼設備?它是否在模擬器上,如果有,計算機的規格是什麼?當我嘗試在Mac mini上模擬iPhone Retina(3.5英寸)時,大約需要7.5秒 – Vafilor 2014-09-08 16:35:51