Te voy a poner un ejemplo de Ajax completo, pa que veas un poco como iria.
Primero el CGI, pa linux, en C, muy simple:
Código:
#include <stdio.h>
#include <time.h>
int main() {
time_t mi_time;
mi_time = time(NULL);
printf("Content-Type: text/plain;charset=us-ascii\n\n");
printf("Hora actual: %s", ctime(&mi_time));
return 0;
}
Lo compilas con gcc -o prueba prueba.c y metes el binario "prueba" en tu /cgi-bin y puedes probar que funcione haciendo peticiones al server en /cgi-bin/prueba
Como ves, para ver la hora actualizada, tienes que ir haciendo peticiones (recargando la página). Bien , esto es lo que javascript y Ajax, nos van a ayudar a hacer.
Bien, te bajas la libreria prototype.js (http://www.prototypejs.org/assets/20...ype-1.6.0.3.js), la renombras como prototype.js (por comodidad) y la metes en tu /var/www.
Ahora creas una página html en /var/www con este contenido:
Código:
<html>
<head>
<title> prueba ajax </title>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
new Ajax.PeriodicalUpdater('lahora', '/cgi-bin/prueba', {
method: 'get',
frequency: 1,
decay: 1
});
</script>
</head>
<body>
<h1> WOOOO Ajax Pino!!</h1>
<p> La hora actual es: </p>
<div id="lahora">
</div>
<p> Esto es la p00llah! </p>
</body>
</html>
Prueba a cargar la web. Ueee un reloj Ajax, IMPRESIONANTE! xD
Bien, el asunto está en el script, que crea un PeriodicalUpdater de prototype, que lo que hace es cada cierto tiempo (le decimos un segundo con el parámetro frecuency), hace una petición al servidor en la url que le pasamos (el cgi), y actualiza un objeto del DOM, con la respuesta que recibe del servidor, en este caso, le decimos que actualize el objeto 'mihora', que hemos definido en el html con un div de id="mihora", con el contenido de la petición a /cgi-bin/prueba, nuestro CGI compiladito.
Asi que el Ajax, va haciendo peticiones cada segundo al servidor, y actualiza el DOM del documento cargado autómaticamente.
Creo que puedes tirar por ahi, solo necesitas o bien hacer varios CGI's para cada cosa (que le pidan datos/manden ordenes al robot), o bien hacer uno que acepte parámetros en la petición.
Hay por ahi un montón de tutoriales de CGI en C que te pueden orientar en esto.
Marcadores