[Jquery-Es] Sincronización de eventos .load y .post
Oscar A. Garcia
ocabeto en hotmail.com
Lun Feb 4 06:41:14 PST 2008
Hola listeros,
Tengo en una página php una función javascript llamada “recabarDatos” en la cual incluyo dos llamadas a la librería jQuery:
- Un .load, que carga un archivo php que a su vez muestra un flash dinámico en el DIV referenciado
- Un .post, que carga dinámicamente otro archivo flash en otro DIV
El código relevante lo pego abajo.
El problema que tengo es que ambas gráficas han de mostrar el mismo momento, y de hecho al final del código vemos
setInterval(recabarDatos, 60000);
...pero sin embargo a veces se descompensa el invento y la primera gráfica (la del load) recarga datos más tarde de lo que debiera, con lo que los datos no son coherentes, especialmente si comparo con lo aparecido en la gráfica de la derecha (la del .post)
¿Alguna idea? ¿ He de usar alguna otra función de jQuery, y en ese caso cómo?
Muchas gracias,
Óscar
----------------------------------------------------------------
//Cuando la estructura DOM de la página termine de cargarse (pero no necesariamente las imágenes)
$(document).ready(recabarDatos);
//Esta función es la que toma los datos de los php:
function recabarDatos()
{
//Calculo un número aleatorio entero de 5 cifras cada vez:
var al = Math.round ( Math.random() * 100000 );
//Cargo este php directamente en la div correspondiente:
$("#grafica-ocupacion").load("include/xmlocupacion.php?aleatorio="+al+" #grafico-usuarios");
//En este caso, el php devuelve un xml del que tomamos las variables,
//que colocaremos en cada uno de los divs:
$.post("include/dbprincipal.php?aleatorio=" + al +"&administracion=false",
function(xml)
{
(etc etc)----------------------------
var trozoHtmlApUs = "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' width='100%' height='100%' id='graficabarras' align='middle'> <param name='allowScriptAccess' value='sameDomain' /> <!-- Pasamos parámetros a la película para que sepa en qué sección estamos, la aplicación y la fecha:--> <param name='movie' value='consultas/graficabarras.swf?topapus=" + cadenaTopApUs + "' /> <param name='quality' value='high' /> <param name='bgcolor' value='#f3f9fa' /> <!-- Pasamos un parámetros a la película:--> <embed src='consultas/graficabarras.swf?topapus=" + cadenaTopApUs + "' quality='high' bgcolor='#f3f9fa' width='100%' height='100%' name='graficabarras' align='middle' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' scale='exactfit' /> </object>";
$(trozoHtmlApUs).appendTo("#grafica-apus");
//Para construir el código HTML/CSS del gráfico de tarta con el porcentaje de ocupación:
$("#grafica-tartaocu").html("");
var desplazamientoTarta = 20 * Math.ceil ( ( ocupacionServ * 20 ) / 100 );
var trozoHtmlOcu = "<div style='display: block; float: left; margin-left: 15; padding: 0; width: 20px; height: 20px; background-image: url(images/leds/slices.gif); background-position: -" + desplazamientoTarta + "px 0px'></div>";
(etc etc)-----------------------------------------
}
}
//Hacemos que se ejecute la función cada X milisegundos:
//( 1 min. = 60000 ms. )
setInterval(recabarDatos, 60000);
------------------------------------------------------------
_________________________________________________________________
Tecnología, moda, motor, viajes,…suscríbete a nuestros boletines para estar siempre a la última
http://newsletters.msn.com/hm/maintenanceeses.asp?L=ES&C=ES&P=WCMaintenance&Brand=WL&RU=http%3a%2f%2fmail.live.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.scriptia.net/pipermail/jquery-es-scriptia.net/attachments/20080204/da05d26d/attachment.htm
Más información sobre la lista de distribución Jquery-Es