2011-05-06 62 views
0

我正在开发一个应用程序,在那个应用程序中,我有很多函数返回我们的服务器数据..我有40个函数,需要执行1个1同步发生。采取单一的功能,并把我的40个功能吧...现在的问题是,一些功能跳过执行数据库操作在Javascript的功能同步问题

我一出来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); 

        } 
      }; 

和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(); 
      } 

任何人都可以告诉我如何做到这一点同步?

+0

我真的不明白你问什么,所以我不能对劝你,但是看着你的代码:与所有的'parent.parent.parent.xyz''什么?如果您在函数的顶部添加'var ggp = parent.parent.parent;'(或者将parent.parent.parent作为参数传递),那么您可以将它加速(并且可能加快速度),然后直接说'ggp.xyz'无处不在。 (如果不是很明显,我用'ggp'代替'great-grandparent')。 – nnnnnn 2011-05-06 05:45:23

+0

其实我有很多函数执行这个包含查询的clientresult函数......所以当我在一堆执行这些函数时,他们错过了他们需要执行的查询..他们工作得很好,当我在单个函数中使用它们时,但是当我在4或5堆中使用它们时,我不知道系统是否缺少一些查询....是否有任何方法来知道我的函数如sync_down_client_info如何执行操作的exections,以便我可以将其他函数放在它之后 – 2011-05-06 06:19:45

+0

当您说“执行此clientresult函数的许多函数”时,是否它们都具有作为来自NetConnection/Responder的回调。我对NetConnection/Responder并不熟悉,但是如果它正在异步执行某些操作,然后通过回调返回,那么如果您一次执行40个响应,一些响应会误入歧途,那么不会感到惊讶,更不用说40个人都采用相同的回调。当你说“他们中的一些人错过了他们需要执行的查询”时,你是否证实它每次都能进入该功能? – nnnnnn 2011-05-06 07:04:21

回答