2011-04-08 154 views
0

我目前遇到了这个问题,如果有人能给我一些提示或最佳做法,那将是非常好的。钛SDK版本:1.6.1 iPhone SDK版本:4.2JSON文件加载问题

我的应用程序将执行以下操作,它也越来越为同步我的SQLite数据库的远程JSON文件,但应用程序是有这个错误在解析文件

[INFO] Due to memory conditions, 0 of 0 images were unloaded from cache. 

使用较小的JSON文件时,一切正常,但现在该文件达到7MB,我的代码退出了我。

这是因为钛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"); 
    } 
} 

任何帮助表示赞赏。

回答

0

我不知道,但实际上你是什么意思与

动态内容

? 通常它应该与你的数据库一起工作

+0

嗨!对不起,我花了一段时间回复我是在一个为期两周的假期。对于“动态内容”,我的意思是数据库中的内容经常更改,因此必须下载或同步数据库以获取最新的正确数据。所以这就是为什么我提到我无法安装数据库的原因。 在进一步的发展中,我看到我可以减少我的JSON文件到1,5MB而不是7MB,我的应用程序可以同时我的数据库,因为这一点,但我仍然希望看到这个问题,以防万一我必须扩大我的JSON文件。 – 2011-04-27 06:51:48