Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Xajax: ¿Cómo actualizar cada x segundos?

Estas en el tema de Xajax: ¿Cómo actualizar cada x segundos? en el foro de Frameworks JS en Foros del Web. Imaginemos que tengo un DIV donde a traves de una sentencia xajax introduzco una imagen. ¿Se puede actualizar de manera automática cada x segundos para ...
  #1 (permalink)  
Antiguo 13/09/2008, 11:33
Avatar de iontxu  
Fecha de Ingreso: marzo-2008
Mensajes: 65
Antigüedad: 16 años, 1 mes
Puntos: 7
Xajax: ¿Cómo actualizar cada x segundos?

Imaginemos que tengo un DIV donde a traves de una sentencia xajax introduzco una imagen. ¿Se puede actualizar de manera automática cada x segundos para ir cambiando de imagen?

A mí se me ocurre el siguiente modo, pero no me gusta:

Teniendo 3 imágenes que se llamen
  • img1.jpg
  • img2.jpg
  • img3.jpg

Lo que menos me importa es el número de imágenes o como se llamen, pueden tener nombres completamente aleatorios, los pongo así para el ejemplo.

Código PHP:
<?php

//Inclusión de la clase Xajax
require('xajax/xajax.inc.php');

//Instancia del objeto de la clase xajax:
$xajax = new xajax();

// FUNCION MOSTRAR 
function mostrar($pos){
    if(!(
$pos==0)){
        
sleep(5); //Se duerme 5 segundos
    
}else{
        
$pos 1;
    }
        if(
$pos==3){
           
$next 1;
        }else{
           
$next=$pos+1;
        }

        
$salida "<img src='img".$pos.".jpg' onload='xajax_mostrar(\"" .$next"\")'/>";
       
        
//Instanciamos el objeto para generar la respuesta con Xajax
        
$respuesta = new xajaxResponse();    
        
//Escribimos en la capa con id='cuadro_foto' el texto que aparece en $cuadro
        
$respuesta->addAssign('cuadro_foto','innerHTML',$salida);        
        
//Tenemos que devolver la instancia del objeto xajaxResponse
        
return $respuesta;
}


//Asociamos la función creada anteriormente al objeto xajax
$xajax->registerFunction('mostrar');

//=========================================================================

//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequests(); //Esto sólo se pone una vez por documento

?> 

<html>

<head>
<?
    
//En el <head> indicamos al objeto xajax que se encargue de generar el javascript necesario
    
$xajax->printJavascript('xajax/');
?>
</head>

<body>

<div id='cuadro_foto'></div>

<script>
xajax_mostrar('0');
</script>

</body>

</html>
Digo que no me gusta porque si lo probáis podréis comprobar que aparece un reloj en el puntero mientras funciona el comando
Código:
sleep()
y además a veces da un error interno de servidor que no entiendo.

También se me ha ocurrido que igual se puede utilizar una animación GIF como temporizador, y que cuando llegue a su fin xajax funcione, pero no sé qué tipo de evento enlazaría eso.

¿Me podéis echar un cable?
¡Saludos!

Última edición por iontxu; 13/09/2008 a las 11:54
  #2 (permalink)  
Antiguo 13/09/2008, 16:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Xajax: ¿Cómo actualizar cada x segundos?

Hola iontxu,

Si lo que quieres hacer actualizar, lo debes de hacer vía Javascript puro, usando window.setTimeOut para llamar a la función xajax_mostrar() en un intervalo que tu especifiques.

Saludos.
  #3 (permalink)  
Antiguo 14/09/2008, 02:21
Avatar de iontxu  
Fecha de Ingreso: marzo-2008
Mensajes: 65
Antigüedad: 16 años, 1 mes
Puntos: 7
Respuesta: Xajax: ¿Cómo actualizar cada x segundos?

Eso era justo lo que buscaba, muchas gracias. Pregunté algo parecido en el foro de Javascript hace un par de días pero nadie me ha respondido...
Muchas gracias, ahora sólo me falta aprender a utilizar el comando que me has dicho y ya te contaré si me vale.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:45.