Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/09/2008, 11:33
Avatar de iontxu
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