Tengo una varible Array en javascript:
Código
var sucursales = new Array;
Dicha variable se actualiza en tiempo de ejecución mediante la siguiente función:
Código
function lista_sucursal() { $.ajax({ url: '/get_sucursales.aspx', type: 'POST', success: function(data) { var r = JSON.parse(data); if(r.ok == true) { var i = 0; while (i < r.data.length) { sucursales[r.data[i].id] = r.data[i].nombre; //Mas codigo irrelevante aqui i++; } } else { //Error aqui } } }); }
Dicha funcion se llama al momento de cargar la pagina primero que otras funciones...
Posteriormente tengo otro parte del codigo que hace mas o menos esto:
Código
function maquinas_sucursales_tabla() { $("#tabla_body").html(""); $.ajax({ url: '/get_maquinas_sucursales.aspx', type: 'POST', success: function(data) { var r = JSON.parse(data); if(r.ok == true) { var i = 0; while(i < r.data.length) { $("#tabla_body").append('<tr><td>' + sucursales[r.data[i].sucursal] + '</td></tr>'); i++; } } else { //ERROR } } }); }
El detalle esta en que hay veces que pone el dato correctamente y otras veces aparece "undefined" y esto es debido a que el codigo del jquery se ejecuta de forma asincrona...
Que recomiendan para solucionar esto, estaba pensando en usar un semaforo como "sucursales_ready" para solo cargar los otros datos cuando la variable ya este lista....
Pero no se, tal vez existe otro metodo mas rapido y/o sencillo.
Saludos!