Я сейчас занимаюсь этим вопросом, было бы замечательно, если бы кто-нибудь дал мне несколько советов или передовой опыт.Версия Titanium SDK: 1.6.1 Версия iPhone SDK: 4.2
Мое приложение выполняет следующее: оно получает удаленный файл JSON для синхронизации моей базы данных SQLite, но в приложении возникает эта ошибка при анализе файла
[INFO] Due to memory conditions, 0 of 0 images were unloaded from cache.
Все отлично работает при работе с меньшими файлами JSON, но теперь размер файла достигает 7 МБ, и мой код перестает работать на мне.
Это из-за ограничения синтаксического анализа титана JSON?Я не могу предоставить базу данных с установкой приложения, из-за динамического контента.Так что это уже исключенное решение.
код:
function syncDatabase() {
if ((Titanium.Network.networkType != Titanium.Network.NETWORK_NONE)) {
Ti.API.info("There is network connection, trying to update database..");
var conn = Ti.Network.createHTTPClient();
conn.setTimeout(20000);
var lastUpdated = Ti.App.Properties.getInt("lastUpdated");
conn.open('GET', 'http://example.com/get/all/' + lastUpdated);
filename = "db";
conn.onload = function(){
try {
if (conn.status == 200)
{
var f = Ti.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory,filename);
f.write(this.responseData);
}
fillDatabase();
}
catch(e) {
}
};
conn.send();
}
}
function fillDatabase()
{
try {
var file = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory + "/db");
var json = JSON.parse(file.read().text);
var db = Titanium.Database.open('db');
for( i=0; i < json.length; i++){
Ti.API.info("Found foobar: With id ["+json[i].id+"] ["+json[i].foo+"]");
var syncid = json[i].id;
var foo = json[i].foo;
var bar = json[i].bar;
db.execute('REPLACE INTO objects (id,foo,bar) VALUES (?,?,?)',syncid,foo,bar);
}
Ti.App.Properties.setInt('lastUpdated', Math.floor(new Date().getTime()/1000));
db.close();
}
catch(e) {
Ti.API.info("THERE IS AN ERROR UPDATING THE DATABASE");
}
}
Любая помощь приветствуется.