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

    [Php] Caricare molti dati da Db

    Ho un'applicazione in php su DB oracle.

    In una pagina devo caricare molti dati forniti dal Db.
    Cosa succede?
    Bene io clicco e aspetto un minuto poi la pagina mi compare con tutti i dati richiesti.
    Non c'è qualche modo di mandare in output i risultati un po' per volta e non tutti alla fine.

    Mi spiego meglio: al posto di aspettare un minuto e poi avere la pagina, non si potrebbe avere qualche riga dopo pochi secondi e continuare il caricamento con le righe successive?

    ciao e grazie

  2. #2
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Beh dipende. Se i dati arrivano lentamente dal database non c'e' niente da fare. Questo mi sembra veramente molto difficile.

    Di solito quando impiega molto tempo e' perche' il browser aspetta molto tempo per formattare una tabella. I dati sono contenuti in una grossa tabella?

    Eventualmente esiste la funzione flush(), comunque.

  3. #3
    i dati ci terranno 20 secondi ad arrivare... il fatto è che devo formattare l'output e questo mi rallenta il caricamento della pagina. ora vado a vedere la funzione flush

    grtazie

  4. #4
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Con una tabella il flush non serve a un tubo. Prova a vedere se con Opera carica piu' veloce (Opera fa il resize dinamico delle tabelle). Se il problema e' quello, non ci sono speranze.

    L'alternativa e' fare una tabella con la larghezza delle colonne predeterminata (sempre che il problema sia la tabella).

    Se i dati impiegano ben 20 secondi ad arrivare forse ti conviene fare:

    print ("I dati arrivano fra un po'");
    flush();
    print $dati;

    Occhio che ho fatto delle prove a suo tempo e sembra che il flush() funzioni ma che il browser attenda di avere una certa mole di dati prima di provare a formattare. E' quindi possibile che tu debba sparare fuori un po' di roba (anche inutile) prima della flush, altrimenti apparentemente non sortisce alcun effetto.

  5. #5
    Hai ben evidenziato il problema.

    Il fatto è che devo caricare i dati in una tabella.
    Ho provato con flush e senza caricare i dati in tabella mi fa quello che volevo, ma quando li metto nella tabella, lui aspetta il completamento di questa per calcolarne la larghezza delle colonne quindi buttarla a video.

    Purtroppo l'applicazione dovrà essere usata verso l'esterno quindi non posso "obbligare" i miei utenti ad usare Opera (cmq, ho provato con Opera, ma sembra non supporti i fogli di stile XML....).

    Ora farò delle prove con le colonne di lunghezza fissa e speriamo bene.....:master:


    Ciao e Grazie Mille

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.