Yo uso php para obtener cierta información de la base de datos y quiero mostrar una barra de progreso hasta que mi php se ejecuta y tengo que mostrar mi página después de la de ejecución de php. ¿cómo puedo lograr esto.

Excatly como la de gmail de la carga de la bandeja de entrada

Una barra de progreso que supone que su página se carga en varios pasos. Dibujar una barra de progreso en la página con Javascript (o cualquiera de un número de métodos fácilmente disponibles que usted puede encontrar usando Google), y avanzar en la barra para cada paso.
Tu pregunta es demasiado vaga. Lo has intentado?
Para agregar a lo que @RobertHarvey señaló. Lo que usted está buscando sólo puede ser ejecutado utilizando AJAX para la carga de los componentes de la página después de la carga de la página inicial. Por lo que el flujo de trabajo básico es el navegador que hace la solicitud. Servidor/aplicación PHP respuesta inicial HTML que muestra la barra de progreso. Usted, a continuación, de forma asincrónica de carga de los componentes de la página el uso de AJAX, la actualización de la barra de progreso mientras lo hace.
Compruebe la página de carga de los componentes… avanzando un indicador de progreso a medida que cada uno se llena. Una vez que todos los componentes están allí ocultar la superposición de
cómo comprobar la carga de los componentes?

OriginalEl autor Giri Dharan | 2014-03-04

3 Comentarios

  1. 2

    A partir de la descripción no sé cómo en profundidad esta barra de progreso tiene que ser. Este es el pseudo-código que debe empezar. No se ejecuta COMO ES… usted tendrá que hacer que estas funciones hacer algo.

    EJEMPLO 1: el 100% del lado de cliente comprobador de

    <script type="text/javascript">
    /* in document head */
    var section1 = 0;
    var section2 = 0;
    var section3 = 0;
    var section4 = 0;
    
    //lightbox w/progress meter
    showProgressLightBox();
    
    //async ajax calls here to load the various sectoins
    loadPage(); //not a real function
    
    
    
    function displayProgressMeter()
    {
       var count = 0;
       if (section1) count++;
       if (section2) count++;
       if (section3) count++;
       if (section4) count++;
    
       if (count != 4) {
         displayProgress(count); //will repaint lightbox progress meter
           //based on X of Y sections loaded
           setTimeout('displayProgressMeter()',500);
       }
       else
       {
            closeLightBox(); //page is loaded
       }
    
    }
    
    displayProgressMeter(); //start the event
    
    //note my ajax calls will flip the values of the various variables we are checking
    
    
    </script>

    Ejemplo 2 server checker. Tengo algo como esto ejecución de un proyecto que dura alrededor de 30 minutos para ejecutar una determinada actividad. El progreso es actualizada por la actualización de la base de datos mysql desde un cron tarea programada

    Primero tengo un archivo PHP llamado «batchStatusChecker» que se ve algo como esto:

    <?php
    define('AREA',"COLREPORT");
    include(__DIR__."/../phoenix/includes/config.php");
    session_start();
    
    
    $batch=(int)@$_REQUEST["batch"];
    include (__DIR__."/affiliateUploadClass.php");
    
    $rs=Query("select commitMessage from phx_AffiliateUsersFiles where ID=$batch;");
    
    echo json_encode(array("info" => $rs->Get("commitMessage")));
    
    
    
    ?>

    Entonces tengo algo de javascript que las actualizaciones de un div con el estado actual o muestra un mensaje de finalización. Usted podría adaptar una técnica como esta a sus necesidades, si es más apropiado para el caso de uso

        function checkStatusOfReport()
        {
    
            $.post("/affiliateUpload/batchStatusChecker.php", { "batch": <? echo $batch; ?> },
            function(data)
            {
                if (data.error)
                {
                    $("#ErrorInformation").html(data.error);
                    $("#UploadInformation").remove();
                }
                else
                {
                    var msg="<h3>" + data.info + "</h3>";
    
                    $("#UploadInformation").html(msg);
    
                    if (data.info == 'COMPLETE')
                        $("#UploadInformation").html('<h3>The import of this batch is completed.</h3>');
                    else
                        setTimeout("checkStatusOfReport()",4000);
    
    
                }
            }, "json");
    
        }
    
        checkStatusOfReport();

    OriginalEl autor ladieu

  2. 0
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
    <html lang="en">
    <head>
        <title>Progress Bar</title>
    </head>
    <body>
    <!-- Progress bar holder -->
    <div id="progress" style="width:500px;border:1px solid #ccc;"></div>
    <!-- Progress information -->
    <div id="information" style="width"></div>
    <?php
    //Total processes
    $total = 2;
    
    //Loop through process
    for($i=1; $i<=$total; $i++){
        //Calculate the percentation
        $percent = intval($i/$total * 100)."%";
    
        //Javascript for updating the progress bar and information
        echo '<script language="javascript">
        document.getElementById("progress").innerHTML="<div style=\"width:'.$percent.';background-color:#ddd;\">&nbsp;</div>";
        document.getElementById("information").innerHTML="'.$i.' row(s) processed.";
        </script>';
    
    
    //This is for the buffer achieve the minimum size in order to flush data
        echo str_repeat(' ',1024*64);
    
    
    //Send output to browser immediately
        flush();
    
    
    //Sleep one second so we can see the delay
        sleep(1);
    }
    
    //Tell user that the process is completed
    echo '<script language="javascript">document.getElementById("information").innerHTML="Process completed"</script>';
    ?>
    </body>
    </html>

    OriginalEl autor debasish

Dejar respuesta

Please enter your comment!
Please enter your name here