Javascript HTML5 SQLITE多查询失败
我正在开发一个应用程序,使用HTML5SQLite在chrome浏览器上运行。 我有一个SQL文件,其中包含CREATETABLE和insert into table的查询。文件大小从30 MB到100 MB不等。 下面是从文件中读取查询并在浏览器中执行查询的代码 我首先在单个查询中执行一组查询,假设55个查询同时执行。当sql文件大小在40 MB左右时,这种方法可以很好地工作,对于某些较大的文件大小,这种方法也可以很好地工作,但对于某些文件,它会失败。 所以我想拆分所有查询并在循环中一个接一个地执行它们。因此,分别执行了55个查询。但是循环在这两者之间停止,没有任何错误,并且不会执行进一步的查询。有什么问题吗 chrome或SQLite中的查询执行是否有限制?还是sql文件大小的限制Javascript HTML5 SQLITE多查询失败,javascript,html,sqlite,google-chrome,Javascript,Html,Sqlite,Google Chrome,我正在开发一个应用程序,使用HTML5SQLite在chrome浏览器上运行。 我有一个SQL文件,其中包含CREATETABLE和insert into table的查询。文件大小从30 MB到100 MB不等。 下面是从文件中读取查询并在浏览器中执行查询的代码 我首先在单个查询中执行一组查询,假设55个查询同时执行。当sql文件大小在40 MB左右时,这种方法可以很好地工作,对于某些较大的文件大小,这种方法也可以很好地工作,但对于某些文件,它会失败。 所以我想拆分所有查询并在循环中一个接一个
$.ajax({
url:'http://localhost/myfolder/85-singapore.sql',
type: "GET",
contentType: "application/json",
dataType: "jsonp",
jsonpCallback:"my",
success: function(obj){
html5sql.process(
"DROP TABLE IF EXISTS poi_data;DROP TABLE IF EXISTS city_data;DROP TABLE IF EXISTS event_data",
function(){
var queryArr = obj.sql.split("^::^");
console.log("total Queries");
console.log(queryArr.length);
for(var i=0; i<queryArr.length;i++){
var islast = false;
if(i+1 == queryArr.length){ islast = true; }
console.log(i);
var query = queryArr[i];
myAPP.loadSQL(query,islast);
}
},
function(error, failingQuery){ //Failure
console.log("DROP SQL Error");
console.log(error.message);
if(error.message.indexOf("no such table") != -1){
var queryArr = obj.sql.split("^::^");
console.log("total Queries");
console.log(queryArr.length);
for(var i=0; i<queryArr.length;i++){
var islast = false;
if(i+1 == queryArr.length){ islast = true; }
//myAPP.loadSQL(queryArr[i],islast);
}
}
}
);
},
error:function(err){
console.log(err);
}
});
loadSQL: function(sql,isLast){
try{
console.log(sql);
var startTime = new Date();
html5sql.process(
sql,
function(){ //Success
console.log("LOAD SQL success");
var endTime = new Date();
console.log("Table with entries created in: " + ((endTime - startTime) / 1000) + "s");
myAPP.removeLoading();
if(isLast){
myAPP.sqlLoaded = true;
}
if(myAPP.sqlLoaded){
myAPP.init();
myAPP.fetchAll();
}
},
function(error, failingQuery){ //Failure
console.log("LOAD SQL Error");
myAPP.removeLoading();
$("#results").text("Error: " + error.message);
console.log(failingQuery);
}
);
}catch(err){
console.log("loadSQL catch--"+err);
}
},
$.ajax({
网址:'http://localhost/myfolder/85-singapore.sql',
键入:“获取”,
contentType:“应用程序/json”,
数据类型:“jsonp”,
jsonpCallback:“我的”,
成功:功能(obj){
html5sql.process(
“如果存在poi_数据,则删除表格;如果存在城市_数据,则删除表格;如果存在事件_数据,则删除表格”,
函数(){
var queryar=obj.sql.split(“^::^”);
console.log(“总查询”);
控制台日志(查询长度);
对于(var i=0;i