Visualizzazione dei risultati da 1 a 4 su 4

Discussione: print prima di tutto!

  1. #1

    print prima di tutto!

    Ciao a tutti.
    Ho un problema e non so come risolverlo. Io con il Perl sono alle prime armi quindi vi chiedo di aiutarmi!!!
    ho creato un programma che gestisca degli articol, quindi posso inserire articoli su database, modificarli ed iliminarli e quando meglio credo, tramite un pulsante creare le pagine HTML che lo visualizzino. Ora siccome gli articoli inseriti sono molti ed io ho bisogno di ricreare tutte le pagine tutte le volte avrei bisogno di un semplice messaggio che mi visualizzi "attendere prego.." poi compia le azioni ed infine mi dica "Fatto!", ma non ho trovato nessun modo funzionante per farlo!
    Io semplicemente scrivo (dopo tutte le varie righe di apertura)

    print "attendere prego...";

    **** tutto il codice che esegue delle SELECT su database e
    costruisce le pagine HTML

    print "fatto!";

    Ma come risultato ottengo che mi esegue il 1 print soltanto dopo aver eseguito tutte le select e le creazioni ed un istante dopo aggiunge il "fatto"! Per tutto il tempo di esecuzione mi ritrovo con una pagina bianca.

    Come posso fare per farli eseguire prima di ogni altra cosa il 1 print e poi il resto???

    Vi ringrazio in anticipo
    ======================================
    Programmatore: persona che ti risolve problemi che prima non pensavi neanche di avere!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Un CGI in Perl e` uno strumento che crea una pagina Web "al volo", cioe` la crea e la manda al server immediatamente.

    Quello che chiedi sono due pagine: una di attesa ed una completa, che necessitano quindi di due script (il CGI non puo` autonomamente inviare una nuova pagina, se non richiesto dal client). E questo rende la cosa molto piu` complessa (dovresti tener conto dei codici di sessione, ...).

    Si puo` ovviare ai problemi creando una pagina fatta di due livelli (layer o <div> ), il primo molto semplice che poi sparisce e lascia il posto all'altro, che nel frattempo e` stato generato.

    Quindi devi:
    1. inviare i codici di apertura pagina;
    2. generare il primo <div> largo e lungo come la finestra del client che contiene solo "attendere prego ...";
    3. aprire il secondo <div>;
    4. generare la pagina con tutte le parti ricavate da database;
    5. chiudere il secondo <div>;
    6. chiudere la pagina e fare in modo che il primo div sparisca.

    Nel CGI e` importante l'ordine con cui esegui le varie operazioni, mentre il punto 6 lo puoi far fare dal client con l'evento onload.

    Se ti e` chiaro questo schema, ti posso dare una mano sui punti 1, 2 e 6, che comportano un lavoro lato client (CSS e Javascript), mentre i punti 3-5 dovresti essere in grado di farli con il Perl (e immagino che gia` li fai).

    Ci risentiamo.
    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ciao,

    su alcuni server è possibile ottenere l'effetto che cerchi, inserendo in cima allo script, dopo eventuali pragma use la stringa:

    $| = 1;

    che forza la scrittura dell'output appena si genera e non tutto alla fine.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  4. #4
    Perfetto! :metallica

    Grazie proprio quello che mi serviva!

    Ciao e grazie a tutti.
    ======================================
    Programmatore: persona che ti risolve problemi che prima non pensavi neanche di avere!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.