Sab Ago 05, 2006 11:03 am
|
 |
AkonD
Perlero Nuevo

|
Registrado: 06 Oct 2005
Mensajes: 50
Ubicación: España
|
|
| Dudas con CGI::Ajax |
|
|
¡Wenas perleros!
Estuve trasteando con CGI::Ajax y todo bien en principio aunque tengo una duda:
¿Cómo hago para modificar contenido en el navegador cuando el script le de la gana sin depender de un evento javascript?, es decir, el módulo permite cambiar contenido cuando se produce un evento en el navegador del cliente pero yo quiero modificar contenido cuando pasa algo en una función Perl.
Mi idea era hacer un cgi que al ejecutarse abriera un socket en el server web que se conectara al irc y entonces ir viendo en el navegador las líneas que llegan en el socket sin recargar la página.
Salu2 |
|
|
|

Sab Ago 05, 2006 11:49 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4212
Ubicación: Valladolid, España
|
|
|
|
|
Por definición, Ajax crea una petición HTTP (httprequest) como si fuera a hacer una llamada a un cgi cualquiera. Y no se queda esperando la respuesta, sino que le da libertad al usuario para seguir interactuando con la página. Cuando el resultado de la petición llegue, la rutina declarada por Ajax se activará y se cambiará el contenido.
Eso quiere decir que sólo hay dos formas de cambiar el contenido: o haciendo una petición http de forma regular, o, después de haber realizado una petición http, no cerrar la conexión y de esa manera el cgi está constantemente enviado información al cliente. Esto es lo que se llamaba hace años la tecnología push, pero yo no lo he visto en ningún lugar añadido a Ajax.
Lo más parecido a lo que quieres hacer está aquí: http://meneame.net/sneak.php
Cada pocos segundos va actualizando los contenidos. Pero lo hace con peticiones periódicas http (variando los tiempos para no sobrecargar al servidor, haciendo que las peticiones aumenten cuanto más contenido hay). |
|

Sab Ago 05, 2006 12:54 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4212
Ubicación: Valladolid, España
|
|
|
|
|
En el módulo CGI.pm se comenta el uso de la tecnología push, pero ya advierten de que sólo funcionaría en clientes netscape (y quizás firefox) pero no Internet Explorer.
De todas maneras, como el protocolo http no está orientado a sesión, estarías obligado a mantener una conexión permanente, y eso no gusta mucho a los servidores web.
Yo creo que lo más fácil es que pongas un evento Javascript de tiempo, de uno o a 3 segundos de espera y con eso hagas una petición Ajax...
El otro método que se usa para mantener una conexión permanente con el usuario es usando un Applet de Java o con Flash. Entonces sí es posible, porque el plugin crea un sockect permanente con el servidor. Ya es independiente del HTTP. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|