Проблема синхронизации в функциях Javascript - PullRequest
0 голосов
/ 06 мая 2011

Я занимаюсь разработкой приложения. В этом приложении у меня есть много функций, которые возвращают нам данные сервера. У меня есть 40 функций, которые необходимо выполнить 1 на 1 для синхронизации. Так что я взял одну функцию и поместилмои 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);

                    }
            };

, а функция 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();
            } 

Может кто-нибудь сказать мне, как сделать эту синхронизацию?

1 Ответ

0 голосов
/ 06 мая 2011

jQuery имеет такие конструкции, как AjaxQueue, чтобы избежать тех условий гонки, которые вы видите. Я бы посоветовал использовать эти плагины.

См. http://plugins.jquery.com/project/ajaxqueue

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...