Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Ajax 将多行绑定到一个事务中_Ajax_Sqlite - Fatal编程技术网

Ajax 将多行绑定到一个事务中

Ajax 将多行绑定到一个事务中,ajax,sqlite,Ajax,Sqlite,这里有很多代码,但我希望它是一个完整的示例。我已经努力使它通用化,以便其他人可以从中受益,也可以从您的答案中受益 我想做的是: 从iPad中选择条形码ID 对于每个条形码,上载到服务器 对于每次回调,更新iPad 我需要做的是以某种方式将所有行打包为一个事务,因为现在它太慢了。比如: 从iPad中选择条形码ID 对于每个条形码,连接一个JSON字符串 将JSON字符串上载到服务器 开始交易 对于回调中的每个条形码ID 提交事务 var变量={}; 函数SelectiPad(SQLTransact

这里有很多代码,但我希望它是一个完整的示例。我已经努力使它通用化,以便其他人可以从中受益,也可以从您的答案中受益

我想做的是:

  • 从iPad中选择条形码ID
  • 对于每个条形码,上载到服务器
  • 对于每次回调,更新iPad
  • 我需要做的是以某种方式将所有行打包为一个事务,因为现在它太慢了。比如:

  • 从iPad中选择条形码ID
  • 对于每个条形码,连接一个JSON字符串
  • 将JSON字符串上载到服务器
  • 开始交易
  • 对于回调中的每个条形码ID
  • 提交事务
  • var变量={};
    函数SelectiPad(SQLTransaction){
    var local={};
    local.sqlite=“选择条形码ID”
    +“来自iPad”
    +“其中ServerSyncDateTime为空”
    +“条形码ID订购”;
    SQLTransaction.executeSql(
    local.sqlite
    ,[]
    ,选择iPadSuccess
    ,选择iPadFailure
    )
    };
    函数SelectiPadSuccess(SQLTransaction、SQLResultSet){
    Variables.iPadRecordcount=SQLResultSet.rows.length;
    for(var i=0;i
    window.dbo=openDatabase('xxx','1.0','xxx',10000);
    (功能(){
    var变量={};
    变量。记录计数=500;
    dbo.transaction(DropTable);
    函数DropTable(SQLTransaction){
    var local={};
    local.sqlite=“如果存在myTable,则删除表”;
    SQLTransaction.executeSql(
    local.sqlite
    ,[]
    ,DropTableSuccess
    ,滴落式故障
    );
    }
    函数DropTableSuccess(){
    事务(CreateTable);
    }
    函数DropTableFailure(){
    调试器;
    }
    函数CreateTable(SQLTransaction){
    var local={};
    local.sqlite=“如果不存在,则创建表myTable”
    +“(myTableID整数非空主键自动递增”
    +,SyncDateTime Varchar(128)
    + ");"
    SQLTransaction.executeSql(
    local.sqlite
    ,[]
    ,CreateTableSuccess
    ,CreateTableFailure
    );
    }
    函数CreateTableSuccess(){
    dbo.transaction(myTableTransaction);
    }
    函数CreateTableFailure(){
    调试器;
    }
    函数myTableTransaction(SQLTransaction){
    var local={};
    for(local.i=0;local.ivar Variables = {};
    
    function SelectiPad(SQLTransaction) {
        var local = {};
    
        local.sqlite = "SELECT BarcodeID"
            + " FROM iPad"
            + " WHERE ServerSyncDateTime is null"
            + " ORDER BY BarcodeID";
        SQLTransaction.executeSql(
             local.sqlite
            ,[]
            ,SelectiPadSuccess
            ,SelectiPadFailure
        )
    };
    
    function SelectiPadSuccess(SQLTransaction,SQLResultSet) {
        Variables.iPadRecordcount = SQLResultSet.rows.length;
        for (var i=0; i < SQLResultSet.rows.length;i++) {
            UploadServer(SQLResultSet.rows.item(i));
        }
    };
    function UploadServer(arg) {
        var local = {};
    
        local.data = {};
        local.data.method = 'Save';
        local.type = 'post';
        local.data.BarcodeID = arg.BarcodeID;
    
        local.Promise = $.ajax('Server.cfc',local);
        local.Promise.done(UploadServerDone); // UPDATE Barcode set SyncDateTime
        local.Promise.fail(UploadServerFail);
    };
    function UploadServerDone(RESULT) {
        var local = {};
    
        local.ServerSyncDateTime = RESULT.QRY.DATA.SERVERSYNCDATETIME[0]; // UPPERCASE
        local.BarcodeID = RESULT.QRY.DATA.BARCODEID[0]; // UPPERCASE
        local.UpdateiPad = UpdateiPad.bind(this,local);
        dbo.transaction(local.UpdateiPad);
    }
    function UpdateiPad(arg,SQLTransaction) {
        var local = {};
    
        local.sqlite = "UPDATE iPad SET"
            + " ServerSyncDateTime=?1"
            + " WHERE BarcodeID=?2"
        SQLTransaction.executeSql(
            local.sqlite
            ,[
                 arg.ServerSyncDateTime // 1
                ,arg.BarcodeID // 2
            ]
            ,UpdateiPadSuccess
            ,UpdateiPadFailure
        )
    }
    function UpdateiPadSuccess() {
    
        Variables.iPadRecordcount -=1;
        if (!Variables.iPadRecordcount) {
            Finished();
        }
    };
    function Finished() {
        alert('yay');
    }
    
    function SelectiPadFailure(SQLTransaction, SQLError) {
        $('.msg').text(SQLError.message);
        debugger;
    }
    
    function UploadServerFail(jqXHR, textStatus, errorThrown) {
        $('.msg').html(errorThrown);
        debugger;
    }
    
    function UpdateiPadFailure(SQLTransaction,SQLError) {
        $('.msg').html(SQLError.message);
        debugger;
    }
    
    window.dbo = openDatabase('xxx','1.0','xxx', 10000);
    
    (function() {
        var Variables = {};
        Variables.Recordcount = 500;
    
        dbo.transaction(DropTable);
        function DropTable(SQLTransaction) {
            var local = {};
            local.sqlite = "DROP TABLE IF EXISTS myTable";
            SQLTransaction.executeSql(
                 local.sqlite
                ,[]
                ,DropTableSuccess
                ,DropTableFailure
            );
        }
        function DropTableSuccess() {
            dbo.transaction(CreateTable);
        }
        function DropTableFailure() {
            debugger;
        }
    
        function CreateTable(SQLTransaction) {
            var local = {};
            local.sqlite = "CREATE TABLE IF NOT EXISTS myTable"
                + "(myTableID Integer NOT NULL PRIMARY KEY AUTOINCREMENT"
                + ",SyncDateTime Varchar(128)"
                + ");"
            SQLTransaction.executeSql(
                 local.sqlite
                ,[]
                ,CreateTableSuccess
                ,CreateTableFailure
            );
        }
    
        function CreateTableSuccess() {
            dbo.transaction(myTableTransaction);
        }
        function CreateTableFailure() {
            debugger;
        }
    
        function myTableTransaction(SQLTransaction) {
            var local = {};
    
            for (local.i=0; local.i < Variables.Recordcount; local.i++) {
                local.InsertSuccess = InsertSuccess.bind(this,local.i);
                local.sqlite = "INSERT INTO myTable(SyncDateTime) VALUES('')"
                SQLTransaction.executeSql(
                 local.sqlite
                ,[]
                ,local.InsertSuccess
                ,InsertFailure
                );
            }
        }
        function InsertSuccess(argCurrentRow,SQLTransaction,SQLResultSet) {
            if (argCurrentRow+1 === Variables.Recordcount) {
                alert('Done!');
            }
        }
        function InsertFailure(A,B,C) {
            debugger;
        }
    })();
    
    
        window.dbo = openDatabase('xxx','1.0','xxx', 10000);
    
        (function() {
            var Variables = {};
    
            dbo.transaction(SelectmyTable);
            function SelectmyTable(SQLTransaction) {
                var local = {};
                local.sqlite = "SELECT * FROM myTable ORDER BY myTableID";
                SQLTransaction.executeSql(
                     local.sqlite
                    ,[]
                    ,SelectSuccess
                    ,SelectFailure
                );
            }
            function SelectSuccess(SQLTransaction,SQLResultSet) {
                var local = {};
    
                local.data = {};
                local.data.myTableIDs = '';
                Variables.Recordcount = SQLResultSet.rows.length;
                for (local.i = 0; local.i < SQLResultSet.rows.length; local.i++) {
                    if (local.i) {
                        local.data.myTableIDs += ',';
                    }
                    local.data.myTableIDs += SQLResultSet.rows.item(local.i).myTableID;
                }
    
                local.data.method = 'Save';
                local.dataType = 'text'; // no return value.
                local.done = UploadDone.bind(this,local.data.myTableIDs);
                local.Promise = $.ajax('myTable.cfc',local);
                local.Promise.done(local.done);
                local.Promise.fail(UploadFail);
            };
            function UploadDone(argTableIDs,result,textStatus,jqXHR) {
                var local = {};
    
                if (result === '') {
                    local.UpdateMyTable = UpdateMyTable.bind(this,argTableIDs);
                    dbo.transaction(local.UpdateMyTable);
                } else {
                    debugger;
                }
            }
            function UpdateMyTable(argTableIDs,SQLTransaction) {
                var local = {};
    
                local.arr = argTableIDs.split(',');
                local.myDate = yyyymmddhhnnssl();
                for (local.i=0; local.i < local.arr.length; local.i++) {
                    local.UpdateSuccess = UpdateSuccess.bind(this,local.i);
                    local.sqlite = "UPDATE myTable SET SyncDateTime=? WHERE myTableID=?";
                    SQLTransaction.executeSql(
                         local.sqlite
                        ,[
                         local.myDate
                        ,local.arr[local.i]
                        ]
                        ,local.UpdateSuccess
                        ,UpdateFailure
                    );
                }
            }
            function UpdateSuccess(argCounter,A,B,C) {
                if (argCounter+1 === Variables.Recordcount) {
                    alert('done!');
                }
            }
            function SelectFailure(A,B,C) {
                debugger;
            };
            function UploadFail(A,B,C) {
                debugger;
            }
            function UpdateFailure(A,B,C) {
                debugger;
            }
        })();