Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    avviso caricamento per sql lenta

    ciao a tutti,
    ho questo problemino.

    Ho una pagina in php con connessione odbc che effettua una query sql abbastanza lenta (circa 7-10 secondi).
    L'effetto è quindi che quando dal menu scelgo quella pagina il browser si sia impallato; mi piacerebbe una frase del tipo "caricamento in corso...".

    Ho cercato e provato alcune soluzioni ma non vanno (credo sia un po' di verso dal classico caricamento dei KB di un'immagine.....).....

    avete qualche idea?


    grazie mille.....

  2. #2
    riciao....nessuno sa aiutarmi please?

    i vari loading non vanno.......non so come fare.....

  3. #3
    Ciao, puoi utilizzare 2 pagine
    la prima dove metti il messaggio di caricamento in corso e dopo il flush
    esegui la query.

  4. #4
    Originariamente inviato da Princex
    Ciao, puoi utilizzare 2 pagine
    la prima dove metti il messaggio di caricamento in corso e dopo il flush
    esegui la query.
    e come faccio a dirgli "dopo il flush" esegui la query?.....

    ho provato a vedere la funzione flush ma non ne esco.

  5. #5
    prima pagina - il form

    il form rimanda alla seconda pagina, qui prendi i dati li metti in sessione

    e stampi ad esempio "caricamento in corso...";

    <?
    echo "Caricamento in corso...";

    ?>

    dopo elabori i dati ...
    puoi fare anche in 2 pagine ad esempio inserendo un iframe


    <?
    echo "Caricamento in corso...";

    ?>
    <iframe src="pagina che fa l'elaborazione"></iframe>


    quando la pagina che fa l'elaborazione finisce ridirezionerai tutto as esempio con un javascript
    con l'istruzione:

    top.location.href = 'risultato.html'

  6. #6
    rieccomi....

    ho fatto alcune prove.

    ho provato a fare una pagina di caricamento in corso contenente un iframe, con la pagina php contenente l'elaborazione dei dati, che vengono visualizzati quanto è tutto caricato.

    non riesco però ad "uscire" dall'iframe sostituendo tutta la pagina quando i dati sono caricati quindi mi rimane il caricamento in corso a fianco.

    ho provato ad inserire nella pagina dei dati:
    codice:
    <script>
    function pageLoaded()
    {
      top.location.href='rott.entrata.php'
    }
    
    windows.onload = pageLoaded;
    
    </script>
    ma non cambia nulla.....

    putroppo di javascript so pochino e non so più come muovermi.

    Inoltre, come posso fare a meno dell'iframe?

    grazie mille......

  7. #7
    codice:
    <?
    #elaborazione che vuoi
    ?>
    
    <script type="text/javascript">
    function pageLoaded()
    {
      parent.location.href='http://xxxxx'
    }
    
    </script>
    
    <body onload="pageLoaded()">
    </body>
    Vi aspetto sul mio sito
    creato per tutti coloro che necessitano di aiuto, scripts ecc.
    http://www.dbpersister.com
    http://principeorazio.wordpress.com/

  8. #8
    Così va bene eseguire la funzioen al termine del caricamento ma non mi risolve molto perchè se lo metto nella pagina dell'elaborazione/stampa dati non ha senso.

    Ho provato anche un javascript che mette un div con un messaggio che al termine del caricamento della pagina viene nascosto.
    Il discorso può funzionare ma il mio problema è che non mi si apre proprio la pagina in php finchè non ha i risultati dalla query odbc quindi non ha neanche il tempo di comparire il div di avviso....

    non so proprio più come muovermi.....

  9. #9
    si, infatti il codice che ti ho messo è quello da inserire nell'iframe.

    Se non vuoi utilizzare l'iframe puoi usare jQuery e caricare il tutto con ajax per esempio:

    codice:
    <script type="text/javascript">
    
    $(function() {
      eseguiElaborazione();
    });
    
    function eseguiElaborazione()
    {
          $.post("altra tua pagina", {
                      parametro: "parametro in post",
                      parametro2: "parametro 2 in post e cosi via"
                }
                , function(data) {
                      if(data == "ok") {
                         location.href='miapagina.html';
                      }
                      else {
                            alert(data);
                      }
                }
                );
    
    }
    
    </script>
    
    <body>
    Elaborazione in corso
    
    </body>


    Lato php nella pagina chiamata da ajax basta fare così:

    Codice PHP:
    function miaFunzioneDiCalcolo()
    {
              
    //Elaborazione lunga
              
    die("ok");


    Fatto.
    PS. ho scritto senza provare,
    Vi aspetto sul mio sito
    creato per tutti coloro che necessitano di aiuto, scripts ecc.
    http://www.dbpersister.com
    http://principeorazio.wordpress.com/

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.