deveu
Posts: 0
Joined: Tue Apr 08, 2014 4:10 am

SetTimeOut

I need to ping to server and I need to sync data between server and tab.
setTimeOut crashes and freezes my tab.
What is the solution?
I need to to navigate some pages and some process will run parallel.
Databind in appery did not work in another page and appery could not give solution.
How may i manage setTimeOut properly so that this dont crash my system

/*

  • check business online offline per minute
    /
    var pingtimeout;
    function ping_device_online()
    {
    /pingVar = setInterval(function() {
    business_online_status();
    }, 1000ping_duration);/
    clearTimeout( pingtimeout);
    business_online_status();
    pingtimeout = setTimeout(ping_device_online,1000ping_duration);
    }
    /
    *business online
    */
    function business_online_status()
    {

    business_id = localStorage.getItem("local_business_id");
    offer_id = localStorage.getItem("local_offer_id");
    status = '';
    var ua = navigator.userAgent;
    if( ua.indexOf("Android") = 0 )
    {
    try{

    Code: Select all

                 if(navigator.network.connection.type != Connection.NONE) 
                 { 
                     status = 'online'; 
    
                     $.ajax({ 
                         type: "POST", 
                         url: '[url=http://dev.eu.com.au/rest-api/server/online_offline]http://dev.eu.com.au/rest-api/server/...[/url]', 
                         data: { 
                             status:status, 
                             b_number : b_number, 
                             business_id:business_id, 
                             offer_id:offer_id 
                         }, 
                         success: function(data) { 
    
                         }//success 
    
                     });//ajax 
                 }//if 
    
         } 
         catch(err)  
         { 
             alert(err.message); 
         }  

}//if
}

//sec=1000;
//hour =sec605;
var sync_counter = 0;
var update_down = false;
var synctimeout;
function sync_up_down()
{
/syncupVar = setInterval(function() {
sync_up();
sync_down();
}, 1000sync_duration);*/

Code: Select all

    clearTimeout(synctimeout); 

    if(sync_counter==11) 
     { 
        sync_counter=0; 
     } 
     else 
     { 
        sync_counter++; 
     } 

 try{  
         //up 
         if(sync_counter==0) 
          { 
            str_prepare_send_to_server("member"); 
          } 

          if(sync_counter==1) 
          { 
            str_prepare_send_to_server("member");   
            str_prepare_send_to_server("lyl_member"); 
          } 

         if(sync_counter==2) 
          { 
            str_prepare_send_to_server("member");   
            str_prepare_send_to_server("member_rewards"); 
          } 

         if(sync_counter==3) 
          { 
            str_prepare_send_to_server("member");   
            str_prepare_send_to_server("member_tokens_points"); 
          } 

         if(sync_counter==4) 
          { 
            str_prepare_send_to_server("member");   
            str_prepare_send_to_server("member_checkin"); 
          } 

         if(sync_counter==5) 
          { 
            str_prepare_send_to_server("member");   
            str_prepare_send_to_server("activity"); 
          } 

          //down 
          if(sync_counter==6) 
          { 
             sync_down_server_to_local("offer");    
          } 

          if(sync_counter==7) 
          { 
           sync_down_server_to_local("offer_images"); 
          } 
          if(sync_counter==8) 
          { 

            sync_down_server_to_local("offer_rewards");     

          } 
          if(sync_counter==9) 
          { 
              //update to keep tarck 
              sync_down_server_to_local("offer_update_sync"); 

          } 

          if(sync_counter==10 && update_down === true) 
          { 
             update_down = false; 

             load_checkin_images(); 
              //main 
             load_items(); 
              //main 
             load_offer(); 
          } 

     }catch(err)  
         { 
             alert(err.message); 
         } 

 setTimeout(sync_up_down,1000*sync_duration); 

}

/*

  • make str store in local and pass it to server
    */
    function str_prepare_send_to_server(table_name)
    {

    business_id = localStorage.getItem("local_business_id");
    dataarr = [];
    str = "";
    db.transaction(function(tx) {
    sql = "SELECT "+table_name+".* FROM "+table_name+" WHERE flag='1'";

    Code: Select all

          tx.executeSql(sql, [],function(tx, results) {  
              if ( results.rows.length=0)  
              { 
                 for(var i=0;i< results.rows.length;i++) 
                 { 
                    dataarr[i]= JSON.stringify(results.rows.item(i)); 
    
                 } 
    
                  str = JSON.stringify(dataarr); 
    
                  var ua = navigator.userAgent; 
                  if( ua.indexOf("Android") = 0 ) 
                  { 
    
                     try{  
    
                         if(navigator.network.connection.type != Connection.NONE) 
                                  { 
                                       if(str.length0) 
                                       { 
    
                                         $.ajax({ 
                                                  type: "POST", 
                                                  url: '[url=http://dev.eu.com.au/rest-api-sync/sync/up_data]http://dev.eu.com.au/rest-api-sync/sy...[/url]', 
                                                  data: { 
                                                      sync_up:str, 
                                                      table_name:table_name, 
                                                      b_number : b_number, 
                                                      business_id:business_id 
                                                  }, 
                                                  success: function(data) { 
    
                                                     update_flag(table_name,results); 
    
                                                  } 
                                              }); 
                                        }   
                                  } 
    
                       } 
                      catch(err)  
                      { 
                          alert(err.message); 
                      }  
                  } 
    
              }//if 
    
          }); 

});
}

function update_flag(table_name,results)
{

Code: Select all

  db.transaction(function(tx) {          
          if ( results.rows.length0)  
          { 
              for(var i=0;i< results.rows.length;i++) 
              { 
                  row = results.rows.item(i); 
                  id_inc  = row['id_inc']; 

                  sql = "UPDATE "+table_name+" set flag='0' WHERE id_inc='"+id_inc+"'"; 
                  tx.executeSql(sql); 
              } 
          } 
   }); 

}

function sync_down_server_to_local(table_name)
{

Code: Select all

  business_id = localStorage.getItem("local_business_id"); 
  offer_id = localStorage.getItem("local_offer_id"); 

  var ua = navigator.userAgent; 
  if( ua.indexOf("Android") = 0 ) 
  { 
     if(navigator.network.connection.type != Connection.NONE) 
     { 

          try{  

                 str =""; 
                 $.ajax({ 
                         type: "POST", 
                         url: '[url=http://dev.eu.com.au/rest-api-sync/sync/up_data]http://dev.eu.com.au/rest-api-sync/sy...[/url]', 
                         data: { 
                             sync_up:str, 
                             table_name:table_name, 
                             b_number : b_number, 
                             business_id:business_id, 
                             offer_id:offer_id 
                         }, 
                         success: function(data) { 
                            //no_update protect to update few tables 
                            // update at server side  
                             if(data !='no_update') 
                             { 
                                  var obj = JSON.parse(data); 
                                  db.transaction(function(tx) { 
                                      sql = "DELETE from "+table_name; 
                                      tx.executeSql(sql); 
                                      sql_insert_values = obj[0]; 
                                      for(var j=1;j<obj.length;j++) 
                                      { 
                                          sql = sql_insert_values + obj[j]; 
                                          tx.executeSql(sql); 
                                      } 

                                  });//db 

                                update_down = true; 

                             } 

                         }//success 

                     });//ajax 

          } 
          catch(err)  
          { 
             alert(err.message); 
          }  

     }//Connection 
  }//Android 

}

Yurii Orishchuk
Posts: 0
Joined: Fri Feb 14, 2014 8:20 am

SetTimeOut

Hi Deveu,

Currently your problem is not clear for us..

Please provide us with minimal bit of not working code..
And show us some screen shot what you want to do.

Regards.

Return to “Issues”