Foros del Web » Programando para Internet » Javascript »

contador de progreso

Estas en el tema de contador de progreso en el foro de Javascript en Foros del Web. Hola a todos Necesitaria hacer un simple contador, pero que cada vez que se incremente el valor el anterior desaparezca, no se si me explico, ...
  #1 (permalink)  
Antiguo 30/12/2002, 15:38
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 22 años, 8 meses
Puntos: 0
contador de progreso

Hola a todos

Necesitaria hacer un simple contador, pero que cada vez que se incremente el valor el anterior desaparezca, no se si me explico, como si fuera un reloj, si si, vamos a ver por ejemplo el bucle:

--------------------------------------------------------------------------------
for ($i=1; $i<=5; $i++)
{
echo "Contando: $i<br/>";
}
--------------------------------------------------------------------------------

Mostraria en pantalla esto:
Contando: 1
Contando: 2
Contando: 3
Contando: 4
Contando: 5

Pues yo quiero que Contando: permanezca igual y se vaya modificando el valor.

No es mas que un contador de progreso, mientras la aplicacion (en este caso en php) va trabajando el contador va sumando hasta que el script php termina su trabajo.

SpiceMan, tu sabes ya de que va el tema...

Un saludo a todos y gracias
  #2 (permalink)  
Antiguo 30/12/2002, 16:32
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
pero.. php puede mostrar algo en el cliente mientras se genera?

en qué momento se ha de detener el contador?
  #3 (permalink)  
Antiguo 30/12/2002, 16:36
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
La única manera que imagino es que dispares una página que vaya sumando un número cada tanto tiempo y que medio coincida con el tiempo de cálculo.

Claro, dado que estás sobre internet, el resultado puede ser contraproducente, porque en lugar de distraer al usuario lo puedes hacer molestar si la conexión te juega una.
  #4 (permalink)  
Antiguo 30/12/2002, 19:48
Avatar de SpiceMan  
Fecha de Ingreso: noviembre-2002
Mensajes: 160
Antigüedad: 21 años, 5 meses
Puntos: 0
Re: contador de progreso

Cita:
Mensaje Original por daniph
No es mas que un contador de progreso, mientras la aplicacion (en este caso en php) va trabajando el contador va sumando hasta que el script php termina su trabajo.
Eso no lo habias dicho antes
Bueno, dejame masticarlo un poco y veo que se me ocurre
  #5 (permalink)  
Antiguo 30/12/2002, 20:22
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
si lo que quieres es mostrar en cuantos segundos se cargó la página eso se hace con php, no con js, pregunta en ese foro por la función timer() creo.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #6 (permalink)  
Antiguo 30/12/2002, 20:23
Avatar de SpiceMan  
Fecha de Ingreso: noviembre-2002
Mensajes: 160
Antigüedad: 21 años, 5 meses
Puntos: 0
Bueno, como contador tengo pensadas 3 posibles formas, primero los enumero y después explico posibles implementaciones (o imposibilidades ) :

1) Comienza a cargar la pagina y aparece algo asi como "Cargando: 0%" y va subiendo a medida que se van obteniendo los datos (muy usado en los flash)
2) Se realiza una operación y aparece una imágen animada de cargando con luces y trompetas pero que en realidad no hace nada.
3) Se lanza un pop-up que tiene algun grafico animado de "Cargando" y se cierra el popup automaticamente cuando se termina de cargar la pagina.


Vamos 1 por 1.
Primer caso: Es casi literalmente imposible hacerlo excepto en flash. El flash más allá de todos sus movimientos es un documento que no varía, es como un rollo de pelicula, no deja de ser un rollo por más que este corriendo. Para determinar cuanto falta exactamente en porcentaje (o mas sencillamente en bytes), deberíamos falta saber el tamaño final del documento + las distintas imagenes mostradas en el mismo (sin contar con los archivos .css y .js). Hay 2 maneras de saber el tamaño de los archivos, una con PHP, donde se obtiene el tamaño del archivo PHP antes de generar los contenidos dinámicos por lo que es imposible saber el tamaño que tendrá al finalizar de procesar todos los datos. Se podría usar tambien la propiedad del MS JScript document.filesize, pero solo funcionaría en IE y sólo podemos saber el tamaño de los archivos una vez obtenidos por lo que ya no tiene sentido usarlo

Segundo caso: Pones un documento con un lindo flash o gif animado o lo que te venga en gana y que a los pocos segundos redireccione a la página que para colmo de males todavía debe generar los datos. No tiene mucho sentido y además hay que ir llevando el pedido del cliente de un documento a otro y a otro.

Tercer caso: Es el que veo más verídico y lo que haría yo. Al envíar un pedido se envia genera un pop-up con un gráfico de cargando, etc. (hasta aca no difiere del segundo caso). La diferencia esta que además de generar el popup, redireccione la página principal al pedido de datos y que cuando termine de obtener todos los datos, algun javascript se encargue de cerrar el popup creado anteriormente. Con lo que queda perfecto el efecto ya que se cierra el pop-up al instante que se termina de cargar los datos (tambien podría hacerse con un layer al estilo http://dvd.box.sk)

Lamentablemente no se me ocurre alguna barra de estado o contador al estilo que querías.
En alguna páginas ponen una especie de barra de estado, pero lo que hace realmente es pre-cargar las imagenes de la página, lo cual no es muy fiable (una página puede tener 3 imagenes y 200k de texto, quedaría diciendo 100% cuando todavia faltan bajarse 190k de texto).


Seguire pensando pero no creo que se me ocurra mucho más.
  #7 (permalink)  
Antiguo 31/12/2002, 15:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Mensaje Original por daniph
No es mas que un contador de progreso, mientras la aplicacion (en este caso en php) va trabajando el contador va sumando hasta que el script php termina su trabajo.
En el foro PHP no dijistes eso (así como no quieres que nos subamos por las ramas?)...

Ahora tendras que definir que proceso esta haciendo PHP .. Pero si es está ejecutando un bucle por ejemplo .. lo que es PHP tieen dos modos de trabajar y el mas usado es el que comento:

Cuando PHP termina el proceso envia su resultado al navegador .. En caso de usar un contador en ese bucle .. solo veriamos su ultimo estado ...

Bien, PHP tiene un modo de gestionar el buffer de salida .. con eso puedes ir "entregando" lo que que va generando PHP en el instante al cliente .. Esto es; entregar una pagina HTML completa segun se genere ..

Esto se puede hacer con un simple flush() en la linea siguiente al echo "El contador vale ".$x;
(o la lógica que uses para presentar el proceso en curso) ...

mas info:
http://us.php.net/manual/en/ref.outcontrol.php

Esto es lo mas acercado a la realidad del proceso en curso de PHP (de ejecucion del scirpt) ...

Ahora, si usas este método .. seria recomendable que metieses este proceso (muestra del estado de ejecucion) o bien en un popup .. o en un frame . o en un iframe .. con el código HTML (o el que uses del lado del cliente) menor posible ..

A todo esto, ten encuenta que hay un tiempo extra que se añada a estó .. es el tiempo q tarda en enviarse la pagina generada por PHP al navegador ..

Si tienes dudas al respecto .. pregunta sobre esto en el foro PHP ..


Un saludo,
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:53.