<div dir="ltr">Hola Matias!!! me quede pensando en lo que hablamos hoy y me pregunto si podre organizar el código (y las llamadas getJSON) con la función <a href="http://api.jquery.com/jQuery.when/">.when()</a> de jquery, la conoces? gracias x la ayuda, buen finde!!!</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">El 4 de junio de 2013 16:12, Cesar Gimenez Lascano <span dir="ltr"><<a href="mailto:cesargimenezlascano@gmail.com" target="_blank">cesargimenezlascano@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Gracias Matias x toda la info!! creo lo mejor sera llamar a las apis con CURL desde el lado del servidor. Es importante lo que decís que hay que tratar de no depender de servicios externos y no es un buen uso de AJAX el que estaba haciendo como dijo Leo. Veremos como sale todo el sábado, dps te comento, saludo grande y gracias x la ayuda y el tiempo!!!</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">El 4 de junio de 2013 08:55, Matias Gea <span dir="ltr"><<a href="mailto:matigea@gmail.com" target="_blank">matigea@gmail.com</a>></span> escribió:<div><div class="h5">
<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Buenas!<div><br></div><div>Exactamente a eso me refería. A pasar al server parte del proceso que ahora hace el cliente (algunas de las peticiones). Se puede llamar a las api fácilmente con curl o directamente file_get_contents o fopen.</div>
<div><br></div><div>Igualmente conozco el paño y sé que algunas de las apis son bastante limitadas.</div><div><br></div><div>Si hacés las peticiones desde el server, es necesario hacer caché. Uno de los parámetros que utilizan las apis para identificar el cliente es la ip (en especial las api que no requieren api key). Si hacés muchas peticiones desde la misma ip en un período corto de tiempo, te banean. Por ejemplo, si una api tiene un máximo de 100 peticiones por hora por ip, si no cacheas y te entran 110 clientes al sitio, te bloquean la api.</div>
<div><br></div><div>Por esto también a veces es una buena opción que el haga la petición sea el cliente, te evitás los límites de algunas api, pero a costa de hacer muchas más peticiones y depender de la estabilidad de servicios externos (algunas apis, como la de facebook o twitter, pueden hacer que tu página cargue hasta 10 segundos más tarde, lo que rompe estadísticas, experiencia de usuario, etc.).</div>
<div><br></div><div>Por eso es un caso a analizar, para no perder funcionalidad, pero maximizar la experiencia de usuario y recursos.</div><div><br></div><div>Saludos!</div><div><br></div><div>
PD: Quiero saber que resuelven el sábado!</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">El 3 de junio de 2013 16:04, Cesar Gimenez Lascano <span dir="ltr"><<a href="mailto:cesargimenezlascano@gmail.com" target="_blank">cesargimenezlascano@gmail.com</a>></span> escribió:<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Gracias Leo! voy a repensar algunas cosas y seguimos dialogando el sábado. Gracias x el tiempo, nos vemos!!</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">El 3 de junio de 2013 15:49, Leonardo Tadei - Pegasus Tech Supply <span dir="ltr"><<a href="mailto:leonardot@pegasusnet.com.ar" target="_blank">leonardot@pegasusnet.com.ar</a>></span> escribió:<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola Cesar,<br>
<br>
si los datos se actualizan frecuentemente, no veo en tu código cómo se<br>
cargan más de una vez luego de cargada la página.<br>
La llamada AJAX tiene sentido para recargar una parte de la página,<br>
pero acá no hay un timer ni nada (o no lo veo) que haga que se recarguen<br>
las cosas.<br>
No conozco la interfaz, pero por el código parece que hay botones con<br>
cada categoría (alojamientos, bares, restaurantes, comercios y puntos de<br>
interés) y que al clickear cada botón, mostrar esa categoría y dejás de<br>
mostrar las otras.<br>
Al no recargarse automáticamente y al no mostrarse más de una capa a la<br>
vez, la aproximación KISS sería tener una página para cada cosa y que<br>
directamente se cargue la que corresponde.<br>
Luego en cada página ejecutás en PHP lo que sea que haga<br>
json/cargarAloj.php<br>
json/cargarBares.php<br>
etc<br>
y generás por ejemplo un vector JS con los datos; en el cliente solo te<br>
encargás de mostrar esos puntos.<br>
<br>
Esto es a lo que apuntaba Matías: podrías hacer lo mismo sin usar par<br>
nada AJAX y no pelearte con la race-condition que se te está generado.<br>
<br>
Por otra parte, posiblemente debas hacer que los:<br>
json/cargarAloj.php<br>
json/cargarBares.php<br>
etc<br>
guarden la respuesta y vayan a buscar cosas nuevas solo cada X minutos,<br>
para no saturar la API con peticiones (y que te echen a patadas)<br>
<br>
Supongo que como la cosa pasó de sintaxis a cuestiones del planteo del<br>
algoritmo, las veremos el sábado que viene cuando te des una vuela por<br>
el curso.<br>
<br>
Saludos cordiales!<br>
<br>
<br>
<br>
El lun, 03-06-2013 a las 13:47 -0300, Cesar Gimenez Lascano escribió:<br>
<div><div>> Volviendo al código, si sugerís que caRgue los datos de las dos<br>
> llamadas remotas (foursquare, twitter) a la BD, estos datos se<br>
> actualizan frecuentemente, tmb para obtenerlos utilizo las ids<br>
> guardadas en mi BD, no veo como podría hacerlo de esa forma....<br>
> saludos y gracias!!!<br>
><br>
><br>
> El 3 de junio de 2013 13:40, Cesar Gimenez Lascano<br>
> <<a href="mailto:cesargimenezlascano@gmail.com" target="_blank">cesargimenezlascano@gmail.com</a>> escribió:<br>
> Uh! perdón a mi por el error de tipeo!! creo que me traiciono<br>
> el subconciente porque esta implementacion se me complico<br>
> bastante....disculpas...<br>
><br>
><br>
> El 3 de junio de 2013 12:37, Leonardo Tadei - Pegasus Tech<br>
> Supply <<a href="mailto:leonardot@pegasusnet.com.ar" target="_blank">leonardot@pegasusnet.com.ar</a>> escribió:<br>
><br>
> Hola Cesar,<br>
><br>
> perdón por el error de tipeo.<br>
> Debería decir "devolverlo ya caRgado desde el<br>
> servidor"<br>
><br>
> Salu2<br>
><br>
><br>
> El dom, 02-06-2013 a las 11:28 -0300, Cesar Gimenez<br>
> Lascano escribió:<br>
> > Gracias Leo! disculpame, a que te referís con<br>
> "devolverlo ya cagado<br>
> > desde el servidor"? a guardar los datos recibidos de<br>
> las llamadas a<br>
> > las apis en la base de datos? gracias x la ayuda.<br>
> saludos!!<br>
> ><br>
> ><br>
> > El 1 de junio de 2013 19:15, Leonardo Tadei -<br>
> Pegasus Tech Supply<br>
> > <<a href="mailto:leonardot@pegasusnet.com.ar" target="_blank">leonardot@pegasusnet.com.ar</a>> escribió:<br>
> > Cesar:<br>
> ><br>
> > Quiero volver a una cuestión que<br>
> Matías platea muy<br>
> > correctamente: no<br>
> > tiene sentido hacer varias llamadas AJAX en<br>
> un bucle, porque<br>
> > si te hace<br>
> > falta todo esto, devolvelo ya cargado desde<br>
> el servidor y<br>
> > listo!<br>
> > Más allá del problema de sintaxis<br>
> que haya, no es un<br>
> > uso razonable de<br>
> > AJAX, ya que es más lento todo esto que<br>
> cargar los valores<br>
> > desde el<br>
> > principio.<br>
> ><br>
> > Acordate del "principio de<br>
> programación KISS" !!!<br>
> ><br>
<br>
<br>
<br>
</div></div><div><div>--<br>
Leonardo Tadei<br>
<a href="mailto:leonardot@pegasusnet.com.ar" target="_blank">leonardot@pegasusnet.com.ar</a><br>
Web: <a href="http://leonardo.tadei.com.ar" target="_blank">http://leonardo.tadei.com.ar</a><br>
Firma pública: <a href="http://www.pegasusnet.com.ar/LeonardoTadei-public.key" target="_blank">http://www.pegasusnet.com.ar/LeonardoTadei-public.key</a><br>
<br>
_______________________________________________<br>
Php-avanzado mailing list<br>
<a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar" target="_blank">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
<a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
</div></div></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
Php-avanzado mailing list<br>
<a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar" target="_blank">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
<a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br></blockquote></div></div></div><br><br clear="all"><div>
<div><br></div>-- <br>
Matias Fernando Gea<br><a href="mailto:matigea@gmail.com" target="_blank">matigea@gmail.com</a><br><a href="http://www.mfgea.com.ar" target="_blank">http://www.mfgea.com.ar</a>
</div></div>
<br>_______________________________________________<br>
Php-avanzado mailing list<br>
<a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar" target="_blank">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
<a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br></blockquote></div></div></div><br></div>
</blockquote></div><br></div>