Foros del Web » Programando para Internet » PHP »

¿Como crear una barra progresiva mientras dura una consulta a la base de datos?

Estas en el tema de ¿Como crear una barra progresiva mientras dura una consulta a la base de datos? en el foro de PHP en Foros del Web. Hola y saludos a todos los visitantes de este foro, tengo la siguiente duda, como puedo mostrar una barra de progreso o un gif que ...
  #1 (permalink)  
Antiguo 19/09/2012, 05:50
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 12 años, 2 meses
Puntos: 3
Pregunta ¿Como crear una barra progresiva mientras dura una consulta a la base de datos?

Hola y saludos a todos los visitantes de este foro, tengo la siguiente duda, como puedo mostrar una barra de progreso o un gif que haga esa funcion pero que se muestre durante el tiempo en que dura mysql en realizar una tarea en especifica, alguien sabe ese truco, ayuda por favorrr ...
  #2 (permalink)  
Antiguo 19/09/2012, 06:18
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 8 meses
Puntos: 192
Respuesta: ¿Como crear una barra progresiva mientras dura una consulta a la base de d

No estoy seguro si esto puede lograrse del lado del servidor solamente. Con AJAX, sí es más fácil y se hace todo el tiempo.

Sin embargo, no es tan fácil usar una barra de progreso pues esto requeriría saber de antemano el tiempo que durará la consulta. Entonces se usan los gifs giratorios o con barras que van y vuelven ( http://www.ajaxload.info/ ).

Otra opción (menos efectiva, más trabajosa) sería crear un script que haga muuuchas consultas y registre los tiempos de respuesta. Tomás el peor caso y estimas que eso es lo más que puede demorar y tomas ese tiempo para hacer tu barra de progreso. Si la consulta termina antes, hacés saltar la barra al 100% y listo. De nuevo, esto es más trabajoso y menos efectivo. Además, va a dar la impresión de que el sitio es más lento.

Te dejo un ejemplo MUY básico, usando un poquito de jQuery (que facilita las consultas AJAX y la creación y manipulación de elementos del DOM)

index.php
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <meta charset="utf-8" />
  3. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  4. <script type="text/javascript">
  5.     $(function(){
  6.         //crear gif y ocultarlo
  7.         $loading = $('<img src="loading.gif" id="loading" />').hide();
  8.         //agregarlo al body
  9.         $('body').append($loading);
  10.        
  11.         $('#consultar').click(function(e){
  12.             e.preventDefault();
  13.             $_elem = $(this);
  14.            
  15.             //hacer la consulta
  16.             $loading.show() //mostramos el gif
  17.             $.ajax({
  18.                 url: 'consultame.php'
  19.             }).done(function(resultado){
  20.                 //ocultamos el gif
  21.                 $loading.hide();
  22.                
  23.                 //agregar el resultado, luego del link
  24.                 $_elem.after(resultado);
  25.             });
  26.         });
  27.        
  28.     });
  29. <style type="text/css">
  30.     <!--
  31.     #loading{
  32.         position: fixed;
  33.         left: 50%;
  34.         top: 50%;
  35.     }
  36.     -->
  37.  
  38. <title>Ejemplo de ajax</title>
  39. </head>
  40.     <a href="#" id="consultar">Consultar</a>
  41. </body>
  42. </html>

consultame.php
Código PHP:
Ver original
  1. <?php
  2.     //emulamos una consulta a la base de datos
  3.     sleep(1);
  4.     echo '<p>Resultado!</p>';
  5. ?>

Ver funcionando: http://nahueljose.com.ar/ejemplos/ajax-test/01/
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 19/09/2012, 06:31
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 12 años, 2 meses
Puntos: 3
De acuerdo Respuesta: ¿Como crear una barra progresiva mientras dura una consulta a la base de d

¡Oye! esta bn chiva eso del la imagen gif eso s lo que quiero, pero ahora mi duda es como llamar esa funcion al finalizar un form y de que manera puedo mostrarlo centrado y que sea con un efecto bonito osea que opaque el contenido de la pagina y muestre solo la barra luego redireccione a una que yo le diga, puedes ayudarme amigo ? gracias x tus respuestas

Etiquetas: barra, mientras, mysql
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 14:38.