Foros del Web » Programando para Internet » ASP Clásico »

Actualizar información

Estas en el tema de Actualizar información en el foro de ASP Clásico en Foros del Web. Hola, tengo un bucle donde se va escribiendo cada x segundos cierta información con un response.write y todas estas líneas me aparecen todas de golpe ...
  #1 (permalink)  
Antiguo 14/06/2007, 05:22
Avatar de Softdesigner  
Fecha de Ingreso: noviembre-2005
Ubicación: Gijón - Asturias - España
Mensajes: 240
Antigüedad: 18 años, 5 meses
Puntos: 0
Actualizar información

Hola, tengo un bucle donde se va escribiendo cada x segundos cierta información con un response.write y todas estas líneas me aparecen todas de golpe al final cuando se acaba el script.

Lo que me gustaría es que según se vaya generando cada línea se vaya viendo en pantalla, existe alguna forma?
__________________

  #2 (permalink)  
Antiguo 14/06/2007, 05:59
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 3 meses
Puntos: 7
Re: Actualizar información

Cita:
Iniciado por Softdesigner Ver Mensaje
Hola, tengo un bucle donde se va escribiendo cada x segundos cierta información con un response.write y todas estas líneas me aparecen todas de golpe al final cuando se acaba el script.
Por supuesto, ASP es un script de servidor. Una vez que el servidor devuelve la página web, se desentiende de ella. Son llamadas síncronas o sincronizadas: envias la página al servidor-->el servidor la interpreta-->el servidor devuelve la página y se queda en espera-->vuelta a empezar.

Si vienes de programar aplicaciones de consola, tienes que tener en cuenta esto: No tienes una conexión continuada con el servidor: envias, recibes, envias, recibes, etc. Es muy diferente de como programas para una aplicacion de cónsola.

Con eso quiero decir que, aunque pongas un retraso en el servidor, lo unico que conseguirás es saturar al servidor. Lo que necesitas, debe hacerse en el cliente o con tecnología PUSH (ya desfasada).

Y en el cliente solo tienes lenguajes de marcación (HTML, XML, etc) y JavaScript (y Flash, por supuesto. Pero eso es harina de otro costal).

Lo que pides se puede hacer usando AJAX (llamadas asincronas al servidor) y alguna función de JavaScript como setInterval.

Deberias preguntar en el foro de JavaScript o en el de AJAX. Allí te informarán mejor


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 14/06/2007, 19:45
 
Fecha de Ingreso: mayo-2006
Mensajes: 614
Antigüedad: 18 años
Puntos: 0
Re: Actualizar información

claro con ajax
__________________
Miguel Roca
InterServicios Informáticos Ltda.
  #4 (permalink)  
Antiguo 15/06/2007, 16:25
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Re: Actualizar información

la solucion proporcionada por Tamm (), es mas efectiva, ya que solo tendras que realizar un timer, que a determinados minutos o segundos, dispara el evento realcionado con tu informacion, asi extraeria directamente sin problemas
un ejemplo seria

FORMULARIO.html
Código PHP:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<
html>
<
head>
<
script language="javascript" type="text/javascript">
function 
handleHttpResponse() {
    if (
http.readyState == 4) {
       if (
http.status == 200) {
          if (
http.responseText.indexOf('invalid') == -1) {
             
// Armamos un array, usando la coma para separar elementos
//             results = http.responseText.split(",");
             
results http.responseText.split(",");
//             document.getElementById("campoMensaje").innerHTML = results[0];
             
document.getElementById("campoMensaje").innerHTML results;//[0];
             
enProceso false;
          }
       }
    }
}

function 
verificaUsuario() {
    if (!
enProceso && http) {
       var 
valor escape(document.getElementById("emailUsuario").value);
       var 
url "consulta.asp?emailUsuario="valor;
       
http.open("GET"urltrue);
       
http.onreadystatechange handleHttpResponse;
       
enProceso true;
       
http.send(null);
    }
}

function 
getHTTPObject() {
    var 
xmlhttp;
    
/*@cc_on
    @if (@_jscript_version >= 5)
       try {
          xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
          try {
             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (E) { xmlhttp = false; }
       }
    @else
    xmlhttp = false;
    @end @*/
    
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
       try {
          
xmlhttp = new XMLHttpRequest();
       } catch (
e) { xmlhttp false; }
    }
    return 
xmlhttp;
}

var 
enProceso false// lo usamos para ver si hay un proceso activo
var http getHTTPObject(); // Creamos el objeto XMLHttpRequest

</script>
</head>

<body>
<form action="" method="post">
    Ingrese su email:
    <input type="text" name="emailUsuario" id="emailUsuario">
    <INPUT type="Button" value="Verificar si existe" onClick="verificaUsuario();">
</form>
<div id="campoMensaje"></div>
</body>
</html> 
el codigo anterior permite que el text box, pongas algo, verifiques mediante el boton y lo desplega en el DIV llamado "campomensaje"

y la pagina del codigo ASP, donde realmente harias lo necesario para esto
consulta.ASP
Código PHP:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
 
me fijo si viene algun valor en el querystringsi no viene nadano hago nada
if request.querystring("emailUsuario") <> "" then
    email 
request.querystring("emailUsuario")
    if 
email "[email protected]then
       vari
="Si, existe"
       
vari=vari "Esto es una prueba de la capacidad de AJAX"
       
vari=vari "<table><tr><th>Esperemos que funcione como dice</th></tr><tr><td>Esperemos que funcione correctamente en el cuadrante 1,2</td></tr></table>"
       
    
else
        
vari="hola compañero"
       
vari=vari "No existe"&vari&"-"&vari&"-"&vari&"-"&vari&"-"&vari&"-"&vari&"-"&vari&"-"
    
end if
    
response.Write vari
end 
if
%> 
tal cual estan los codigos funciona bien
solo habria que modificar un poco, esta ultima pagina y te daria lo que ocupas, dentro del FORO de JAVASCRIPT, hay muchos ejemplos de TIMERS

suerte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
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 10:14.