[Php-avanzado] consulta jquery para la tesis
Matias Gea
matigea en gmail.com
Sab Jun 1 12:58:11 ART 2013
Hola, Cesar.
Calculo que lo que dice Leo es cierto y tu problema es un race-condition
entre el for y los llamados asincrónicos. El código está bien formado, pero
debés tener un problema al asignar el popup generado al marcador (algún
problema de variables que toman valores indeseados).
Mostrame el código completo de todo eso, así tengo un panorama más preciso.
Una pregunta, de diseño, ¿es necesario cachear todos los datos de los
popups en lugar de hacer un request cuando necesitás mostrarlo? porque
calculando que tengas un mapa algo poblado, digamos 50 marcadores, estarías
haciendo 51 peticiones asincrónicas después de cargar la página. Y si
necesitás toda la info cacheada, ¿por qué no hacés que te devuelva toda la
info en una llamada? Con JSON hacer esto es bastante simple.
Espero el código así lo corregimos.
Saludos!
El 31 de mayo de 2013 20:52, Leonardo Tadei - Pegasus Tech Supply <
leonardot en pegasusnet.com.ar> escribió:
> Ufff... faltan muchos detalles para empezar a adivinar qué puede estar
> pasando!
>
> Asumiendo que $.getJSON() hace algún tipo de llamada AJAX usando el
> framework JQuery, y asumiendo que las llamadas sean asincrónicas, lo que
> puede estarte pasando es que las llamadas a $.getJSON() adentro del
> bucle no alcancen a terminar antes de que vuelva a ser invocada en el
> próximo ciclo.
>
> Si lo que se ve es la primera en vez de la última, supongo que es por la
> implementación de la biblioteca, pero habría que destriparla para estar
> seguros.
>
> No debe ser el problema, pero que ambas funciones anónimas usen como
> parámetro la variable "data" a mi de eriza los pelos de la nuca, por el
> ámbito de las variables en JavaScript respecto de las funciones, que es
> mucho más amplio que en otros lenguajes.
>
> Espero que alguien que sepa más que yo de JQuery nos ayude a entender
> qué es lo que pasa.
>
>
> El vie, 31-05-2013 a las 19:56 -0300, Cesar Gimenez Lascano escribió:
> > Hola, tengo un problema con un código para armar una capa de
> > marcadores, con su respectiva ventana de información (popups), y
> > agregarla a un mapa. El código como está crea todos los marcadores
> > pero solo el primer popup. Es que la función data del segundo llamado
> > $.getJSON se ejecuta solo una vez? o el mismo llamado?. Aclaro que el
> > popup se carga de información de las dos fuentes json por eso esta uno
> > dentro del otro. Espero puedan darme una mano!!!
> >
> >
> > $.getJSON("carga datos", function (data) {
> > for (var i = 0; i < data.length; i++) {
> > var nombre = data[i].nombre;
> > var dir = data[i].direccion;
> > $.getJSON("cargar otros datos", function(data) {
> > var var1= data.var1;
> > var var2= data.var2;
> > //crear popup
> > });
> > //crear marcador
> > //agregar marcador a la capa
> > } // fin del for
> > }).complete(function() {
> > //agregar capa al mapa
> > });
> >
> > _______________________________________________
> > Php-avanzado mailing list
> > Php-avanzado en pato2.fi.mdp.edu.ar
> > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
> --
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> Web: http://leonardo.tadei.com.ar
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
--
Matias Fernando Gea
matigea en gmail.com
http://www.mfgea.com.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20130601/dece252b/attachment.html>
Más información sobre la lista de distribución Php-avanzado