Javascript y PHP

He estado esta tarde programando una migración de una base de datos para un amigo (bueno, esta tarde he terminado el script). Y ahora que ya lo tengo terminado y funciona todo bien y tal, pues quería aprovechar para practicar un poco con interfaces dinámicos con javascript y AJAX.

Lo que yo tengo es un script PHP que hace varios selects a una base de datos y luego va insertando cada fila en otra base de datos, además de inserts adicionales por aquello de las relaciones entre tablas, para que funcione todo. Sin saber nada de AJAX yo pensaba que permitía comunicar bidireccionalmente servidor con cliente. Pero después de buscar un poco, la conclusión a la que puedo llegar es que no. AJAX te sirve para hacer peticiones concretas al servidor una vez la página está ya servida. Mi gozo en un pozo.

Lo que yo quería hacer era ir mostrando unas barras de progreso a medida que iba insertando filas en la base de datos, pero por lo que veo me va a resultar un poco imposible. Se me ha ocurrido una solución un tanto extraña, pero que creo que va a funcionar.

La idea es la siguiente: cargar la página y, una vez cargada, mediante el conocido evento onLoad de javascript, arrancar una función javascript que vaya llamando al script de PHP. De esa forma conseguiré ir actualizando las barras de proceso en tiempo real, pero me temo que va a tardar bastante más en ejecutar. Bueno, habrá que probarlo.

Ya os contaré.

$comentarios = 4

  1. Living Makken Skeyes - MakkenSkeyes.com » Mi otro blog dice:

    [...] Javascript y PHP Secciones: Un desarrollador formado en Mordor | Puedes comentar, por el bien de la raza felinaNota: Los comentarios con más de un enlace serán retenidos para su moderación, debido a la posibilidad de que sea spam. Perdonad las disculpas :P [...]

  2. jrmora dice:

    Hala
    Que buena noticia.
    Y yo que pensé que no me iba a enterar de nada… :D

  3. MarcosBL dice:

    Otra recomendación: Haz lo que dices tú, pero que el .php vaya escribiendo en un .txt cada por ejemplo 5 registros, la cadena “50/3000″ por decir algo, 50 de 3000, y en el evento document ready del html, cargas en una capa la barra de progreso utilizando por ejemplo jquery y su funcionalidad ajax, contra ese txt. El rendimiento de leer un txt es infinitamente superior al de lanzar un proceso php aparte para leer, asi que asi te irá más rápido.

    Eso si, imagino que hablas de millones de registros, porque en caso contrario, en cualquier maquinilla mediocre te será imposible medir la diferencia :D

  4. Daniel Hernández dice:

    Vaya, muchas gracias por el consejo, parece buena idea :D Al final no ha hecho falta usar barras de progreso, pero lo tendré en cuenta para posibles desarrollos futuros ;)

Deja un comentario o vendrá Dijkstra y te obligará a contar pesos de grafos

*
Para comprobar que no eres un bot, introduce este código
Anti-Spam Image

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Nota: La moderación de comentarios está activada, por lo que tu comentario podría tardar en aparecer. No le des al botoncito para pasar el rato, anda :P