Javascript函数中的同步问题

Javascript函数中的同步问题,javascript,synchronization,Javascript,Synchronization,我正在开发一个应用程序,在这个应用程序中,我有许多函数可以返回服务器数据。。我有40个函数需要一个接一个地执行才能进行同步。所以我只取了一个函数,并将我的40个函数放在其中。。。现在的问题是,其中一些函数跳过了执行数据库操作 我的40个函数中有一个是 function sync_down_client_info(){ try { parent.parent.parent.stmt_select.text = "select query";

我正在开发一个应用程序,在这个应用程序中,我有许多函数可以返回服务器数据。。我有40个函数需要一个接一个地执行才能进行同步。所以我只取了一个函数,并将我的40个函数放在其中。。。现在的问题是,其中一些函数跳过了执行数据库操作

我的40个函数中有一个是

function sync_down_client_info(){
    try {

            parent.parent.parent.stmt_select.text = "select query";
            parent.parent.parent.stmt_select.execute();
            parent.parent.parent.result = parent.parent.parent.stmt_select.getResult();
            if (parent.parent.parent.result.data != null) {
                    for (var i = 0; i < parent.parent.parent.result.data.length; i++) {

                            var admin_id = parent.parent.parent.admin_id;
                            var sync_client_date =  parent.parent.parent.result.data[i].last_sync_client;
                            // alert(admin_id+"======="+ sync_client_date);

                            GATEWAY = 'http://projects/one_acc/flashservices/gateway.php';
                            conn = new parent.parent.parent.air.NetConnection();
                            conn.connect(GATEWAY); 

            response = new parent.parent.parent.air.Responder(clientresult, clientFault);
                            conn.call('down_client_info', response,admin_id,sync_client_date);


                            response = new parent.parent.parent.air.Responder(clientserverdatetimeResult, clientserverdatetimeFault);
                            conn.call('check_datetime', response);

                    }
            };
function sync\u down\u client\u info(){
试一试{
parent.parent.parent.stmt\u select.text=“选择查询”;
parent.parent.parent.stmt_select.execute();
parent.parent.parent.result=parent.parent.parent.stmt_select.getResult();
if(parent.parent.parent.result.data!=null){
对于(var i=0;i
clientresult函数是

function  clientresult(e)
     {

    for (var i=0; i<e.length; i++) {
            //alert(e.length);
            parent.parent.parent.stmt_select.text="select query ;
            parent.parent.parent.stmt_select.execute();
            parent.parent.parent.result = parent.parent.parent.stmt_select.getResult();
            if(parent.parent.parent.result.data!=null){


              parent.parent.parent.stmt_insert.text= "update client_info ;
                      parent.parent.parent.stmt_insert.execute();
            } 
函数clientresult(e)
{

对于(var i=0;ijQuery有类似于AjaxQueue的结构,以避免您看到的这些竞争条件。我建议使用这些插件


参考

我不太明白你在问什么,所以我不能就此向你提供建议,但看看你的代码:所有的
parent.parent.xyz'
?如果你在函数顶部添加
var ggp=parent.parent.parent;
,你可以对它进行优化(可能会加快)(或者可以将parent.parent.parent作为参数传入),然后到处说
ggp.xyz
。(如果不明显,我用“ggp”表示“曾祖父母”。)实际上,我有很多函数执行这个包含查询的clientresult函数…所以当我在一堆函数中执行这些函数时,其中一些会错过它们需要执行的查询…当我在单个函数中使用它们时,它们工作得很好,但是当我在一堆4或5中使用它们时,我不知道系统是否会错过一些查询。。。。有没有办法知道我的函数(如sync_down_client_info)是如何执行操作的,这样当你说“很多函数都执行这个clientresult函数”时,我就可以把我的其他函数放在它后面了你的意思是它们都有相同的函数作为NetConnection/Responder的回调函数的一部分。我不熟悉NetConnection/Responder,但是如果它是异步执行某个操作,然后通过回调返回,如果您一次执行40次,其中一些响应出现错误,我不会感到惊讶,更不用说40次全部执行相同的回调了ck.当你说“他们中的一些人错过了他们需要执行的查询”你确认过它每次都会用到这个函数吗?实际上很多函数都涉及到应用程序的模块,我根据自己的需要在一个同步函数中编译了它…是的,它在每个函数中,但不执行每个函数的查询。。。