由于我是IOS手机上的初学者,面临一些内存管理问题。我创建了一个带有几个Ajax请求的phonegap项目。
安装app后,它会执行从服务器数据库(MySql)到localdatabase(WebSql)的数据同步(大约20个表)。使用Ajax请求和REST api发送和接收数据。
Android设备上的一切正常但是当我在IOS设备(iPad)或模拟器(iPhone 6s plus)上构建和运行应用程序时。最初内存消耗为93MB。登录后页面被重定向到同步,内存逐渐从93MB上升到1.42GB等等,导致应用程序异常中止抛出内存警告。从服务中恢复的数据采用JSon格式。
JSon数据可能包含2500条记录,因此我修改了该服务以仅生成500/100/10条记录并使用分页技术,但内存仍然高于1 GB。
由于要同步的数据非常庞大,我应该在IOS上使用什么方法进行同步。
代码: -
db.transaction(function(tx)
{
tx.executeSql("CREATE TABLE IF NOT EXISTS apm_t(apm_id int(11) NOT NULL, srNo_vc varchar(25) DEFAULT NULL,and so on..)");
//Retrive server data
$http.get("http://192.168.1.99:8080/myplanner-rest-api/apms")
.success(function(response) {
for(var i=0;i<response.length;i++){
//Insert server data into local database
myService.setApm_t(response[i].apm_id, response[i].srNo_vc, and so on…);
}
});
});
myApp.service('myService', function($q) {
this.setApm_t = function(apm_id, srNo_vc,and so on..)
{
db.transaction(function(tx)
{
return tx.executeSql("INSERT INTO apm_t (apm_id, srNo_vc, and so on..) VALUES(?, ?, and so on..)", [apm_id, srNo_vc,and so on..], function(tx, res)
{
return true;
});
});
return false;
}
});
请提供一些专家建议和指导。提前谢谢。