Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5 SQLITE多查询失败_Javascript_Html_Sqlite_Google Chrome - Fatal编程技术网

Javascript HTML5 SQLITE多查询失败

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左右时,这种方法可以很好地工作,对于某些较大的文件大小,这种方法也可以很好地工作,但对于某些文件,它会失败。 所以我想拆分所有查询并在循环中一个接一个

我正在开发一个应用程序,使用HTML5SQLite在chrome浏览器上运行。 我有一个SQL文件,其中包含CREATETABLE和insert into table的查询。文件大小从30 MB到100 MB不等。 下面是从文件中读取查询并在浏览器中执行查询的代码

我首先在单个查询中执行一组查询,假设55个查询同时执行。当sql文件大小在40 MB左右时,这种方法可以很好地工作,对于某些较大的文件大小,这种方法也可以很好地工作,但对于某些文件,它会失败。 所以我想拆分所有查询并在循环中一个接一个地执行它们。因此,分别执行了55个查询。但是循环在这两者之间停止,没有任何错误,并且不会执行进一步的查询。有什么问题吗

chrome或SQLite中的查询执行是否有限制?还是sql文件大小的限制

$.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